C#/GoF 디자인패턴

[GoF]8.복합체 패턴(Composite Pattern)

공부를하자 2023. 10. 15. 21:59

1.정의

 -복합체 패턴은 복합 개체와 단일 개체를 같은 방법으로 사용하고자 할 때 사용되는 패턴.

 -복합체 패턴에서는 단일 개체와 복합 개체를 같은 방법으로 사용할 수 있게 일반화하고

   단일 개체 형식과 복합 개체 형식은 파생된 클래스로 구현하여(추상클래스 또는

   인터페이스) 기능을 약속함으로써 개체가 단일 개체인지 복합 개체인지를 모르더라도

   같은 방법으로 사용할 수 있다.

 

2.시나리오

 -가족들은 매주 주말 여행을 다니면서 사진을 찍었다.

 -찍은 사진들을 분류할 여행을 다닌 지역단위로 나뉘면 날짜를 보기가 어렵고

  반대로 분류하면 날짜를 보기 어렵다.

3.다이어 그램

-트리(Tree) 클래스는 경로와 카테고리의 추상클래스로 경로개체와 클래스 개체를

 기능과 카테고리 개체로 있는 기능(View) 약속한다.

- 경로{Path} 단일 개체이며 카테고리(Category)클래스는 복합개체로 카테고리와 경로를  가질 있다.

-카테고리는 이외의 기능(가상메서드) 추가적으로 가지고 있다.

4.구현

1)Tree 클래스

 -카테고리와 경로의 추상클래스로 공통적인 부분을 추상메서드로 카테고리의 기능은 가상메서드로 약속한다.

2)Category 클래스

3)Path 클래스

4)테스트

 

 

  1. 결과