[디자인패턴] 컴포짓패턴(Composite pattern)

2016. 11. 19. 16:17프로그래밍/디자인패턴

    목차

컴포짓패턴(Composite pattern)


개별 객체와 복합 객체를 코드 상에서 별도로 구분하지 않고 추상화한 인터페이스를 구성하고 동일하게 다룰 수 있도록 한 패턴


  작성형식

  내용


Component

  • 컴포넌트 자신을 포함한 모든 컴포넌트에 대한 추상화이다.
  • 구성(composition)에 있는 객체들의 인터페이스를 정의한다.
  • (선택적으로) component의 부모에 대한 접근하기 위한 재귀적인 구조(recursive structure)의 인터페이스를 정의하고, 적절하다면 구현한다.

Leaf

  • 구성(composition)에 있는 leaf 객체들을 표현한다.
  • component의 모든 메서드를 구현한다.

Composite

  • composite 컴포넌트를 표현한다.(자식들을 가지는 컴포넌트)
  • 자식들을 다루기 위한 메서드를 구현한다.
  • 모든 component 메서드를 구현한다.(일반적으로 메서드 기능을 자식에게 위임해서 구현한다. 여기에서 위임이라함은 자식의 기능을 호출한다고 보면 될 것 같네요.)





추가 예제

http://jusungpark.tistory.com/26


  참조


https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8F%AC%EC%A7%80%ED%8A%B8_%ED%8C%A8%ED%84%B4

http://smallorbit.tistory.com/entry/Composite-Pattern%EC%BB%B4%ED%8F%AC%EC%A7%80%ED%8A%B8-%ED%8C%A8%ED%84%B4