헷갈리는 패턴 간 목적 비교

어떤게 어떤 것을 해결하기 위한 목적이었는지 모른다면 헷갈리기 쉬움 

뭐 ... 결론적으로 나오는 구조가 문제가 아님 ㅋ 

구글 검색을 해보니 표로 작성해주신 분이 있는 듯해서 퍼옴. 

// 아니 이거 왜 트랙백이 안감;; http://wikidocs.net/mybook/read/page?pageid=3187

 구조 개선을 위한 디자인 패턴

 

[표]Adapter와 Bridge 패턴의 비교, 요약

 

Adapter 패턴

Bridge 패턴

공통점

-        3의 객체를 간접 접근하도록 함으로써 설계의 유연성을 높여줌

-        3의 객체가 제공하는 인터페이스와는 다른 형태로 요청이 전달됨

차이점

-       이미 존재하는 두 가지 형태의 인터페이스간 불일치성을 해소해주는 것이 주목적

-       인터페이스의 구현 방법이나 독립적인 변경 가능성에 대해서는 신경쓰지 않음다만 서로 독립적으로 설계된 두 개의 클래스가 변경없이 같이 사용될 수 있는 방법에 초점을 둠

-       인터페이스와 그것의 구현 모듈을 연결시켜주는 역할 수행

-       Clinet에게는 동일한 인터페이스를 제공하면서 내부 구현은 지속적으로 변경발전시켜나가기 위한 목적으로 사용

주적용 시점

사후처리기존의 소프트웨어에 새로운 요구사항이 주어져 애초에 연관성이 고려되지 않은 클래스들이 함께 동작하도록 할 때 주로 사용

사전처리애초 설계 시 동일 인터페이스에 대해 여러 구현 방법을 적용시키거나 인터페이스와 구현을 독립적으로 수정발전시키기 위해 주로 사용

 

[표] Composite와 Decorator 패턴의 비교, 요약

 

Composite 패턴

Decorator 패턴

공통점

-       회귀적 구성 관계를 가지는 비슷한 클래스 구조 사용

차이점

여러 개의 관련된 객체들이 동일한 형태로 취급될 수 있도록 클래스들을 구조화시키는데 중점을 둠

여러 기능들을 동적으로 추가삭제할 수 있도록 만들어 주는데 중점을 둠

기타

-       두 가지 패턴이 동시에 사용되어 상호 보완적인 역할을 수행할 수도 있음

-       Composite 패턴 입장에서 해석하면 Decorator 및 그 하위 클래스가 Composite 클래스 객체를 구성하는 기본 객체들을 위한 클래스 역할을 수행하는 것임

-       Decorator 패턴 입장에서 해석하면 Composite 클래스가 Decorator 및 그 하위 클래스 객체에 의해 최종적으로 꾸며질 객체의 클래스 역할을 수행하는 것임

 

[표] Decorator와 Proxy 패턴의 비교, 요약

 

Decorator 패턴

Proxy 패턴

공통점

-       어떤 객체에 대한 간접 접근 방식을 제공하거나 구현 시 Client로부터 주어진 요청을 다른 객체로 전달하기 위한 데이터 멤버를 가지는 등 비슷한 구조임

-       Client에게 자신이 참조하고 있는 객체와 동일한 인터페이스 제공

차이점

-       어떤 객체에게 기능이나 특성을 추가제거하는 것이 주목적

-       회귀적인 구성 관계를 가짐

-       클래스 추가 정의를 통해 새로운 기능의 정의가 가능함

-       Decorator 객체가 수행하는 기능은 동적으로 확장될 수 있음

-       어떤 객체를 간접 접근하거나 간접 접근 시 부가 처리를 수행하기 위한 방법 제공

-       주요 기능은 Subject 클래스에 의해 정의됨. Proxy 클래스는 부가적인 기능만 수행함

-       컴파일 시에 정적으로 Subject 클래스가 결정됨

by jindog | 2009/08/20 09:04 | PROGRAM | 트랙백 | 덧글(0)

트랙백 주소 : http://jindog.egloos.com/tb/4215315
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶