프로그래밍 기술/Escort GoF의 디자인 패턴 C#

[C#] 복합체 패턴(Composite Pattern)

언제나휴일 2016. 4. 7. 17:29
반응형

8. 복합체 패턴(Composite Pattern)

 

 복합체 패턴은 복합 개체와 단일 개체를 같은 방법으로 사용하고자 할 때 사용되는 패턴입니다. 복합체 패턴은 트리 구조로 관리고자 할 때 자주 사용이 됩니다. 예로 폴더(복합 개체)와 파일(단일 개체)을 같은 방법으로 사용하게 하는 것이죠.

 

 이처럼 복합체 패턴에서는 단일 개체와 복합 개체를 같은 방법으로 사용할 수 있게 일반화하여 기반 클래스를 제공합니다. 단일 개체 형식과 복합 개체 형식은 파생된 클래스로 구현하겠죠. 중요한 것은 기반 클래스에서 단일 개체와 복합 개체에서 할 수 있는 모든 기능을 인터페이스로 약속한다는 점에 있습니다. 이를 통해 사용자는 해당 개체가 단일 개체인지 복합 개체인지를 모르더라도 같은 방법으로 사용할 수 있는 것입니다.

 

 하지만 이와 같은 복합체 패턴에서는 실제 개체 형식에서는 아무 필요도 없는 기능까지 기반 클래스에서 제공하는 단점을 갖게 됩니다. , 사용자에게 같은 방법으로 사용할 수 있게 한다는 이점을 주는 대신 의미 없는 행동에 대한 메서드도 비어있는 상태로 제공해야 한다는 단점을 갖고 있습니다. 이처럼 복합체 패턴을 사용하면 다양한 종류의 단일 개체 형식을 추가하는 것이 쉽습니다. 반면, 특정 복합 개체에 포함할 수 있는 개체의 형식에 제한을 줄 필요성이 있을 때는 프로그램이 동작하는 실행 시간에 실제 개체 형식을 참조하여 처리해야 하는 비용이 들게 됩니다.

 

 사용자에게 같은 방법으로 접근할 수 있게 투명성을 제공할 것인지 불필요한 행위를 제공하지 않음으로써 안정성을 택할 것인지는 개발자의 선택사항입니다. 안정성보다 투명성을 제공하는 것이 이득이 많다고 판단되면 복합체 패턴을 사용하시기 바랍니다.

 


복합체 패턴(Composite Pattern)



Composite.zip



2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 복합체 패턴(Composite Pattern) - 개요, 시나리오


2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 복합체 패턴(Composite Pattern) - 설계(Design)


2016/04/26 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 복합체 패턴(Composite Pattern) - 구현

Escort GoF 디자인 패턴 C# 소개 바로가기




반응형