Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed
文書の過去の版を表示しています。
Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed
the Definition of Composite Pattern
컴포지트 패턴의 정의는 다음과 같습니다.
컴포지트 패턴을 이용하면 객체들을 트리 구조로 구성하여 부분과 전체를 나타내는 계층구조로 만들 수 있습니다. 이 패턴을 이용하면 클라이언트에서 개별 객체와 다른 객체 들로 구성된 복합 객체(composite)를 똑같은 방법으로 다룰 수 있습니다.
가령 메뉴를 기준으로 생각해 봅시다. 이 패턴을 이용하면 중첩되어 있는 메뉴 그룹과 메뉴 항목을 똑같은 구조내에서 처리할 수 있습니다. 메뉴와 메뉴 항목을 같은 구조에 집어 넣어서 부분-전체 계층구조(part-whole hierachy)를 생성할 수 있습니다. 여기서 부분-전체 계층구조란, 부분(메뉴 및 메뉴 항목)들이 모여있지만, 모든 것을 하나로 묶어서 전체로 다룰 수 있는 구조를 뜻합니다.
일단 메뉴를 이런 방식으로 만들고 나면 컴포지트 패턴을 써서 객별 객체와 복합객체들을 똑같은 식으로 다룰 수 있습니다. 조금 어렵죠? 다시 설명해 보자면, 메뉴, 서브메뉴, 서브서브메뉴 등과 함께 메뉴 항목으로 구성된 트리 구조가 있다고 하면 각각이 모두 복합 객체가 될 수 있다는 것입니다. 각 메뉴 안에 다른 메뉴 및 메뉴 항목이 또 들어있을 수 있으니까요. 개별 개체도 결국 메뉴라고 할 수 있습니다. 다른 객체가 들어있지 않을 뿐 이죠. 앞으로 배우게 되겠지만, 컴포지트 패턴을 따르는 디자인을 사용하면 간단한 코드만 가지고도 (인쇄같은) 똑같은 작업을 전체 메뉴 구조에 대해서 반복해서 적용할 수 있습니다.
이제 컴포지트 패턴의 클래스 다이어그램을 살표볼 차례입니다.