Object Oriented Programming
Computer Programming
알고리즘이 모여 특수목적을 갖게 되면은 프로그램이 된다
컴퓨터 프로그램에는 크게 3가지가 존재한다.
1. Machine Languages(기계어)
2. Assembly Languages(어셈블리어)
3. High-Level Languages(고급언어)
고급언어에 가까울 수록 사람의 언어와 점점 비슷해지는 특징이 있다.
Machine Languages
0과 1만으로 이루어져 있는 언어 그래서 사람이 알아 듣기가 매우 어렵다.
Assembly Languages
기계어를 사람이 사용할 수 있게 변환시켜준 언어이다
하지만 소수의 명령어, 변수 밖에 없기 때문에 매우 불편하다
High-Level Languages
line by line 으로 읽으면서 바로 컴퓨터에서 볼 수 있도록 변환을 해준다
고급언어에도 크게 2가지로 볼 수 있다
Procedural Languages(절차지향 언어): C, COBOL,Fortran, LISP, Perl, HTML, VBScript...
Object-Oriented Languages(객체지향 언어): Java, C++, Python, JavaSCript...
객체 지향의 특징과 장점으로는 크게 4가지가 있다
1. Encapsulation(캡슐화) 복잡성을 줄여주고 재사용성을 높여준다
2. Ingeritance(상속) 똑같은 코드가 겹치지 않게 해준다.
3. Abstaction(추상화) 복잡성을 줄여준다.
4. Polymorphism(다향성) switch/case 문을 쓰지 않고 깨끗하게 코드를 사용할 수 있게 해준다
Instantiation Patterns
말 그대로 인트턴스를 만드는 과정을 뜻한다.
자바스크립트에서의 Class가 나오기 전 사용하던 Class선언 방식으로 4가지가 있다
1. Functional
2. Functional Shared
3. Prototypal
4. Pseudoclassical
Functional
var Car = function(position){ var someInstance = {}; someInstance.position = position; someInstance.move = function(){ this.position += 1; } return someInstance; } var car1 = Car(5);
Functional Shared
var extend = function( to, from){ for( var key in from ){ to[key] = from[key]; } } var someMethods = {}; someMethods.move = function(){ this.position += 1; } var Car = function(position){ var someInstance = { position : position; }; extend(someInstance, someMethods); return someInstance; } var car1 = Car(5); var car2 = Car(10);
Function Shared 방식을 사용하면 someMethods라는 객체에 있는 메소드들이 메모리 주소만을
참조하기 때문에 메모리 효율이 좋다.
Prototypal
var someMethods = {}; someMethods.move = function(){ this.position += 1; } var Car = function(position){ var someInstance = Object.create(someMethods) someInstance.potition = position; return someInstance; } var car1 = Car(5); var car2 = Car(10);
여기서 Object.create의 역활은 특정 객체를 프로토타입으로 하는 객체를 생성해 주는 함수이다.
Pseudoclassical
var Car = fucntion(position){ this.position = position; } Car.prototype.move = function(){ this.postion += 1; } var car1 = new Car(5); var car2 = new Car(10);
가장 많이 사용하는 방식이다
댓글
댓글 쓰기