※ 합성이란?
필요한 기능을 직접 구현하는 것이 아니라 필요한 기능을 구현하고 있는 객체와 연결(합성)해서 기능을 사용하는 것.
※ 상속과 합성비교
상속과 합성 모두 기능을 직접 구현하지 않고 사용한다는 공통점이 있지만 각각 상황에 맞게 사용해야 한다.
- 클래스 상속을 사용할 때
- IS-A 관계가 성립 할때.
ex) 요즘 스마트폰과 네비게이션에는 DMB기능이 포함되어 있다. 하지만 스마트폰은 DMB다,
네비게이션은 DMB이다는 잘못된 명제이다. 즉 IS-A 관계가 성립되지 않는다.
- 기능을 재사용 하기보단 부모의 기능을 확장하기 위해 주로 사용.
- 합성을 사용할 때
- IS-A 관계는 신경쓰지 않는다.
- 합성은 이미 구현되어 있는 기능을 빌려 쓰듯 재사용하고 싶을 때 주로 사용한다.
위의 네비게이션, 스마트폰과 DMB의 예가 적절한 합성의 예이다. IS-A관계는 성립하지 않지만
네비게이션과 스마토폰에는 DMB의 기능이 들어가기 때문에 합성을 사용한다.
- 동적 바인딩 구현을 위해 사용.
'플밍 is 뭔들 > JavaScript&jQuery' 카테고리의 다른 글
[JavaScript] ECMAScript 2015 / ES6 (2) / 클래스(Class) (0) | 2019.11.11 |
---|---|
[JavaScript] ECMAScript 2015 / ES6 (1) / var, let, const (0) | 2019.10.16 |
[JavaScript] 자바스크립트 객체지향 프로그래밍 - 다형성 (0) | 2017.08.23 |
[JavaScript] 자바스크립트 객체지향 프로그래밍 - 상속 (0) | 2017.08.21 |
[JavaScript] 자바스크립트 객체지향 프로그래밍 - 캡슐화 (0) | 2017.08.21 |