1.정의
-복합체 패턴은 복합 개체와 단일 개체를 같은 방법으로 사용하고자 할 때 사용되는 패턴.
-복합체 패턴에서는 단일 개체와 복합 개체를 같은 방법으로 사용할 수 있게 일반화하고
단일 개체 형식과 복합 개체 형식은 파생된 클래스로 구현하여(추상클래스 또는
인터페이스) 기능을 약속함으로써 개체가 단일 개체인지 복합 개체인지를 모르더라도
같은 방법으로 사용할 수 있다.
2.시나리오
-가족들은 매주 주말 여행을 다니면서 사진을 찍었다.
-찍은 사진들을 분류할 떄 여행을 다닌 지역단위로 나뉘면 날짜를 보기가 어렵고
그 반대로 분류하면 날짜를 보기 어렵다.
3.다이어 그램
-트리(Tree) 클래스는 경로와 카테고리의 추상클래스로 경로개체와 클래스 개체를
기능과 카테고리 개체로 할 수 있는 기능(View)을 약속한다.
- 경로{Path}는 단일 개체이며 카테고리(Category)클래스는 복합개체로 카테고리와 경로를 가질 수 있다.
-카테고리는 그 이외의 기능(가상메서드)을 추가적으로 가지고 있다.
4.구현
1)Tree 클래스
-카테고리와 경로의 추상클래스로 공통적인 부분을 추상메서드로 카테고리의 그 외 기능은 가상메서드로 약속한다.
2)Category 클래스
3)Path 클래스
4)테스트
- 결과
'C# > GoF 디자인패턴' 카테고리의 다른 글
[GoF]10.퍼사드 패턴(Facade Pattern) (0) | 2023.10.18 |
---|---|
[GoF]9.장식자 패턴(Decorator Pattern) (0) | 2023.10.17 |
[GoF]7.가교 패턴(Bridge Pattern) (0) | 2023.10.08 |
[GoF]6.적응자 패턴(Adapter Pattern) (0) | 2023.09.23 |
[GoF]5.단일체 패턴(Singleton Pattern) (0) | 2023.09.19 |