2009년 11월 5일 목요일

Composite Pattern

Composite Pattern

- 그릇과 내용물을 동일시해서 재귀적인 구조를 만들기 위한 디자인 패턴

예: 어떤 디렉터리 안에 무엇이 있는지를 차례대로 조사한다고 가정
  이때, 차례로 조사하는 것은 하위 디렉터리일지도 모르고 파일일지도 모릅니다. 한마디로 말하면 '디렉터리 엔트리'를 차례대로 조사하는 것입니다. 디렉터리와 파일을 모아서 디렉터리 엔트리로 취급하듯이 그릇과 내용물을 같은종류로 취급하면 편리한 경우가 있습니다. 그릇안에는 내용물을 넣을수 있고 더욱 작은 그릇을 넣을수 있습니다. 그리고 그 작은 그릇안에 더 작은 그릇을 넣고... 이런 식으로 '상자안의 상자;처럼 된 구조, 즉 재귀적인 구조를 만들 수 있습니다.

 

예제 프로그램




Composite 패턴의 등장인물

Leaf(나뭇잎)의 역할
: Leaf는 '내용물'을 표시하는 역할을 하며 내부에는 다른것을 넣을 수 없습니다.
예제프로그램에서 File 클래스

Composite(복합체)의 역할
: Composite는 '그릇'을 나타내는 역할을 하며 Leaf 역할이나 Composite 역할을 넣을 수 있습니다.
예제프로그램에서 Directory 클래스

Component의 역할
: Leaf 역할과 Composite 역할을 동일시 하는 역할을 합니다. Component는 Leaf 역할과 Composite 역할에 공통적인 상위 클래스로 실현합니다.
예제프로그램에서는 Entry 클래스

Client(의뢰자)의 역할
: Composite의 사용자
예제프로그램에서는 Main 클래스




출처 : Java언어로 배우는 디자인 패턴 입문

0 개의 댓글:

댓글 쓰기