8. 복합체 패턴(Composite Pattern)
8. 3 디자인
복합체 패턴에 대한 설명을 위해 트리와 경로, 카테고리 형식을 예로 들겠습니다.
경로는 단일 개체이며 카테고리는 복합 개체입니다. 카테고리에는 경로 개체와 카테고리 개체를 자식 요소로 포함할 수 있습니다. 복합체 패턴을 이용하면 경로(단일 개체)나 카테고리(복합 개체)를 같은 방법으로 사용할 수 있게 됩니다. 이를 위해 경로와 카테고리를 일반화하여 기반 형식으로 트리를 만들 것입니다.
같은 방식으로 사용할 수 있게 하려고 경로 개체에서 할 수 있는 기능과 카테고리 개체로 할 수 있는 모든 기능을 트리에서 제공할 것입니다. 그리고 경로와 카테고리에서는 자신들이 제공해야 할 기능에 대해 재정의를 해 줍니다. 그리고 카테고리 개체는 복합 개체이므로 트리 형식의 개체를 소유할 수 있게 해 줍니다.
개요에서도 말했듯이 복합체 패턴을 적용하면 단일 개체와 복합 개체를 같은 방법으로 사용할 수는 있지만 불필요한 기능이 노출되는 단점을 갖고 있다는 것을 잊지 말아야 할 것입니다.
[그림 9] 복합체 패턴 패턴 예제 클래스 다이어그램
2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 복합체 패턴(Composite Pattern) - 개요, 시나리오
2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 복합체 패턴(Composite Pattern) - 구현
'프로그래밍 기술 > Escort GoF의 디자인 패턴 C#' 카테고리의 다른 글
[C#] 퍼사드 패턴(Facade Pattern) - 개요, 시나리오 (0) | 2016.04.26 |
---|---|
[C#] 장식자 패턴(Decorator Pattern) - 구현 (0) | 2016.04.26 |
[C#] 장식자 패턴(Decorator Pattern) - 설계(Design) (0) | 2016.04.26 |
[C#] 장식자 패턴(Decorator Pattern) - 개요, 시나리오 (0) | 2016.04.26 |
[C#] 복합체 패턴(Composite Pattern) - 구현 (0) | 2016.04.26 |
[C#] 복합체 패턴(Composite Pattern) - 개요, 시나리오 (0) | 2016.04.26 |
[C#] 가교 패턴(Bridge Pattern) - 구현 (0) | 2016.04.26 |
[C#} 가교 패턴(Bridge Pattern) - 설계(Design) (0) | 2016.04.26 |
[C#] 가교 패턴(Bridge Pattern) - 개요, 시나리오 (0) | 2016.04.26 |
[C#] 적응자 패턴(Adapter Pattern) - 구현 (0) | 2016.04.26 |