본문 바로가기

소프트웨어 공학

(디자인 패턴) Composite Pattern

훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com

 

Composite Pattern


1. 종류

structural pattern의 한 종류이다.

 

2. 사용 의도

- 객체를 부분-전체 계층 구조로 나타낼 때

- 클라이언트는 leaf와 composite의 차이를 무시하고 component만 바라본 채 사용 가능하다.

- composite와 recursive를 통한 타입의 일관적인(uniformly) 처리를 위해 사용한다.

 

3. 장점

- 상속한 모든 type을 일관적으로 처리할 수 있다.

 

4. 구조도

 

출처 : 학부 수업

 

composite 패턴 구조도

여기서 주의해야 할 것은, 형광펜 친 부분인, composite객체의 doOperation부분은 반드시 고정되어야 합니다.

왜냐하면 composite는 자신 하위에 또 다른 composite나 leaf를 갖기 때문입니다.

 

5. 실제 객체 구조도

 

composite 패턴 실제 객체구조

클라이언트는 최상위 composite만을 바라보고 모든 하위 객체들을 사용 가능합니다.

 

6. 구성 요소

 

Client - Component의 사용 주체

Component - 객체의 일관적 처리를 위한 Interface

leaf - component를 구현한 객체

composite - component를 구현한 객체이나, 스스로 leaf를 갖는다. 즉 component와 같은 역할을 한다.

 



 

예제


아래 블로그에서 너무 좋은 예제를 만들어주어서, 따로 예제는 만들지 않았습니다.

꼭 참고하시길

 

mygumi.tistory.com/343

 

컴포지트 패턴(Composite Pattern) :: 마이구미

이 글은 디자인 패턴 중 컴포지트 패턴(Composite Pattern) 을 다룬다. 위키피디아의 내용을 기반으로 정리할 예정이다. 위키 - https://en.wikipedia.org/wiki/Composite_pattern 글의 주제를 다루기에 앞서, 글..

mygumi.tistory.com


 

Composite Pattern에 대해서 알아보았습니다.