본문 바로가기

프로그래밍/DesignPattern-C#

(2)
데코레이터(Decorator) 패턴 데코레이터(Decorator) 패턴개별 클래스가 단일 책임(Single Responsibility)을 가질 수 있도록 하기에 매우 적합한 패턴이다. 클래스는 종종 다른 클래스에 책임을 위임할 명확한 방법을 찾지 못하고 혼자서 너무 많은 일들을 수행할 때가 있다. 이러면 클래스가 맡은 책임들이 서로 깊은 관련이 있어 보인다. 데코레이터 패턴의 가장 기본적인 전제는 각 데코레이터 클래스가 어떤 타입에 대한 계약을 만족함과 동시에 생성자 매개변수를 통해 자신이 데코레이트할 하나 혹은 그 이상의 데코레이터 객체들을 받아들인다는 점이다. 이 패턴은 특정 인터페이스를 구현하는 기존 클래스에 새로운 기능을 추가할 수 있는데, 이때 (클라이언트가 알지 못하도록) 데코레이터를 이용해 해당 클래스가 여전히 필요한 인터페이..
컴포지트(Composite) 패턴 컴포지트(Composite) 패턴여러 인터페이스의 인스턴스를 마치 하나의 인스턴스인 것처럼 취급하는 것. 그래서 클라이언트는 단 하나의 인스턴스만을 받아들인 후 별도의 수정 없이도 해당 인스턴스를 여러 개의 인스턴스처럼 활용할 수 있는 방법아래 기본적인 컴포지트 패턴 사용 방법을 알아보자.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 //...namespace Composite.basic{ public interface IComponent { void Something(); }}..