디자인패턴 3

[C#] Proxy 패턴

카테고리 : 구조패턴 개요 : Proxy 패턴은 클라이언트가 실제 사용을 원하는 객체를 직접 사용하는 것이 아니라 그 객체에 대한 대리자(Proxy) 역할을 하는 객체를 두고, 클라이언트가 대리자(Proxy( 객체를 통해서 실제 객체를 사용하도록 하는 방식이다. Proxy 패턴은 클라이언트와 실제 사용하고자 하는 객체(RealSubject) 사이에 대리자(Proxy)를 두고, 실제 객체(RealSubject) 대신 대리자를 호출하는 방식이다. 대리자(Proxy) 객체는 실제 객체와 동일한 인터페이스를 가지며, 클라이언트와 실제 객체 사이에는 하나 이상의 복수 Proxy 객체가 있을 수 있다. Proxy 패턴에서 대리자(Proxy)는 단순하게는 클아이언트 요청을 그대로 실제 객체에 전달 가능하며, 대리자(..

[C#] Decorator 패턴

카테고리 : 구조 패턴 개요 : Decorator 패턴은 기존 객체의 구조를 그대로 둔 채, 그 객체에 부가적인 기능을 동적으로 추가하기 위해 사용된다. 객체지향 프로그래밍에서 흔히 클래스에 새로운 기능들을 추가하기 위해 서브클래스를 만들어 사용하는데, 이것의 대안적인 방법으로 Decorator 패턴을 이용할 수 있다. 클래스 상속을 사용하면 너무 많은 서브클래스들이 만들어 지는 경우 Decorator 패턴이 유용하게 사용된다. 기능 확장을 위해 서브클래스를 사용하는 방식은 컴파일시에 결정되는 기능 확장 방식인 반면, Decorator 패턴은 객체를 전달하며 기능을 확장하는 방식으로 런타임시에 동적으로 기능 추가, 확장하게 된다. 서브클래싱 방식은 클래스 상속을 사용하게 되는데 상속으로 구현시, 서브클래..

[C#] Adapter 패턴

카테고리 : 구조 패턴(Structural Pattern) 개요 : Apater 패턴은 기존 라이브러리/시스템의 기능을 사용하고자 할 때, 그 인터페이스가 현재 시스템과 맞지 않을 때, 중간 Adapter 인터페이스를 통해 여러 다양한 시스템들을 바꿔가며, 사용하고자 할 때 사용됨 즉, 현재 시스템과 사용하고자 하는 시스템 간의 호환되지 않는 인터페이스를 중간에 Adapter 인터페이스를 사용하여 연결해 주는 디자인 방식이다. 기존 클래스의 코드를 수정하지 않으며, 다른 클래스와 연동해서 사용할 수 있도록 사용하는 곳에 사용됨 예를 들어 C타입 충전기를 7-pin이나 5-pin 기기와 연결하려면 변환해주는 어뎁터가 필요하다 ㅇ이러한 어뎁터를 사용한다면, 따로 충전기를 구매하지 않아도 사용이 가능하게 된다..