본문 바로가기

Homo Design

설계 패턴을 선택하는 방법


설계 패턴에 대해서 처음 접하거나 익숙하지 않을 경우, 특정 설계 문제를 해결하는 패턴을 선택하는데 있어서 어려움이 따른다. 디자인 패턴 책에서는  특정 문제에 적합한 설계 패턴을 선택하는 접근 방법에 대해서 다음과 같이 설명되어 있다.

1. 설계 패턴이 어떻게 설계 문제를 해결하는지를 고려하라.
2. 의도(intent) 절을 잘 읽어보라.
3. 패턴들끼리 어떤 관계가 있는지를 이해하라.
4. 유사한 목적(purpose)를 가지는 패턴들을 숙지하라.
5. 재설계에 대한 원인을 파악하라.
6. 설계에서 변동성이 있어야 되는 것이 무엇인지를 고려하라.


 의도 (purpose)  설계 패턴  변동될 수 있는 부분
 생성  Abstract Factory  제품 객체들에 대한 군(family)
 Builder  복합 객체를 생성시키는 방법
 Factory Method  인스턴스화 되는 객체의 하위 클래스
 Prototype  인스턴스화 되는 객체의 클래스
 Singleton  특정 클래스의 단독 인스턴스
 구조  Adapter  특정 객체에 대한 인터페이스
 Bridge  특정 객체에 대한 구현체
 Composite  특정 객체에 대한 구조와 복합 구조
 Decorator  하위 클래스가 없는 객체에 대한 책임성(responsiblity)
 Facade  서브시스템에 대한 인터페이스
 Flyweight  객체에 대한 저장 비용
 Proxy  특정 객체에 대한 접근 방법 (객체의 위치)
 행위  Chain of Responsibility  요청을 수행할 수 있는 객체
 Command  요청에 대한 수행 시기와 방법
 Interpreter  특정 언어(language)에 대한 문법과 해석(interpretation)
 Iterator  특정 집합(aggregate) 요소들에 대한 접근 방법과 탐색(traverse) 방법
 Mediator  객체와 각각의 다른 객체와의 상호작용 방법과 대상
 Memento  외부에 있는 객체에 저장되는 내부(private) 정보의 정의와 시기
 Observer  또 다른 객체에 의존적인 객체들의 수와 의존 객체들의 최신 상태 유지 방법
 State  특정 객체의 상태
 Strategy  알고리즘
 Template Method  알고리즘의 단계들
 Visitor  객체들의 클래스를 변경하지 않고 객체에 적용될 수 있는 오퍼레이션들
반응형