자바스크립트 : 객체지향 프로그래밍2

nomore·2022년 9월 21일
0

자바스크립트

목록 보기
10/11

객체 지향 프로그래밍

하나의 모델이 되는 청사진을 만들고 => class
그 청사진을 바탕으로 객체(object)를 만드는 프로그래밍 패턴 => instance
즉 객체 지향 프로그래밍은 모델이 기반되는 설계도로 객체를 만드는 프로그래밍 이라고 생각하면 되겠다.

용어를 잘 구분하는 것이 중요하다.

그냥 객체가 아닌 '청사진(class)'를 바탕으로 한 객체는 인스턴스 객체(instance object), 줄여서 인스턴스라고 부르자.
청사진은 클래스(class)라고 구분한다.

객체를 어떻게 만드는 지 보면 그냥 일반적인 함수를 정의하듯 만든다.
하지만 클래스를 기반으로 하는 객체를 만들경우 그냥 실행하는 것이 아닌
new 키워드를 써서 만든다. 이는 새로운 인스턴스를 만드는 방법이다.

function Car(color){
}

let avante = new Car('blue);
let mini = new Car('cyan');
let beetles = new Car('red');

일반적인 다른 함수와 구분하기 위해 클래스는 보통 대문자로 시작하며 일반 명사로 만든다.
일반적인 함수는 적절한 동사를 포함하고 소문자로 시작한다.

클래스를 만드는 새로운 문법이 ECMA script 6에 도입되었다.
키워드는 class 키워드.
최근에는 ES6 방법을 주로 사용한다.

객체지향 프로그래밍의 주요 개념

캡슐화(Encapsulation)

  • 데이터와 기능을 하나의 단위로 묶는 것
  • 은닉(hiding) : 구현은 숨기고, 동작은 노출시킴
  • 느슨한 결합(Loose Coupling)에 유리 : 언제든 구현을 수정할 수 있다.
    = 코드나 데이터의 은닉에 포커스가 맞춰져 있다.

추상화(Abstraction)

  • 내부 구현은 아주 복잡하지만, 실제로 노출되는 부분은 단순하게 만든다는 개념
    = 클래스를 사용하는 사람이 필요하지 않은 메서드를 노출시키지 않고, 단순한 이름으로 정의하는 것에 포커스

상속(Inheritance)

  • 부모 클래스의 특징을 자식 클래스가 물려받는 것
  • 자세하게는 기본 클래스(base class)의 특징을 파생 클래스(derived class)가 상속받는 표현

다형성(Polymorphism)

  • poly '많은' morph '형태' 라는 뜻을 가지고 있다. 즉 '다양한 형태'를 가질수 있다는 말

0개의 댓글