본문 바로가기

플밍 is 뭔들/JavaScript&jQuery

[JavaScript] 자바스크립트 객체지향 프로그래밍 - 합성

※ 합성이란?
필요한 기능을 직접 구현하는 것이 아니라 필요한 기능을 구현하고 있는 객체와 연결(합성)해서 기능을 사용하는 것.

※ 상속과 합성비교
상속과 합성 모두 기능을 직접 구현하지 않고 사용한다는 공통점이 있지만 각각 상황에 맞게 사용해야 한다.

  1. 클래스 상속을 사용할 때
           - IS-A 관계가 성립 할때. 
             ex) 요즘 스마트폰과 네비게이션에는 DMB기능이 포함되어 있다. 하지만 스마트폰은 DMB다, 
                   네비게이션은 DMB이다는 잘못된 명제이다. 즉 IS-A 관계가 성립되지 않는다. 

           - 기능을 재사용 하기보단 부모의 기능을 확장하기 위해 주로 사용.

  1. 합성을 사용할 때
           - IS-A 관계는 신경쓰지 않는다.

           - 합성은 이미 구현되어 있는 기능을 빌려 쓰듯 재사용하고 싶을 때 주로 사용한다.
             위의 네비게이션, 스마트폰과 DMB의 예가 적절한 합성의 예이다. IS-A관계는 성립하지 않지만 
             네비게이션과 스마토폰에는 DMB의 기능이 들어가기 때문에 합성을 사용한다.

          - 동적 바인딩 구현을 위해 사용.