Creational Patterns
객체를 생성하는 더 나은 방법을 제시
Factory Method
객체를 생성하는 interface를 정의
instance를 만들 class의 결정은 subclass가 담당함
class를 instance 화 하는 시점을 subclass 에서 수행하도록 지연시킴
Abstract Factory
구체적인 class를 지정하지 않고
관련성 있는 객체의 집합을 생성하거나
서로 독립적인 객체들의 집합을 생성할 수 있는 interface를 제공
Builder
복잡한 인스턴스를 조립.
각 부분에 대한 구현부를 나누어 이를 조립하여 큰 기능을 수행함.
Prototype
클래스 이름을 지정하지 않고 인스턴스를 복사하여 생성.
- 종류가 너무 많아 한 개의 클래스로 할 수 없는 경우
- 클래스로부터 인스턴스를 생성하기 어려운 경우
- 프레임워크와 생성할 인스턴스를 분리하고 싶은 경우
Singleton
class의 instance는 오직 하나가 되도록 보장하고
이 instance에 접근하는 방법을 제공
Structural Patterns
객체를 어떻게 같이 합칠 것 인지 제시
Facade
subsystem의 interface 집합에 대해 하나의 통합된 interface를 제공
subsystem 사용이 쉽도록 하기 위해 높은 수준의 interface를 사용
Proxy
다른 객체로의 접근을 통제하기 위해 해당 객체의 대리자를 제공
Adapter
class의 interface를 다른 class가 사용할 수 있는 class로 변환함
호환성이 없는 interface로 연동이 불가능한 class를 개조하여 연동이 가능하게 함
Composite
부분, 전체 계층을 표현하기 위해 복합 객체를 tree 구조로 제공
client가 단일 객체와 복합 객체 모두를 동일하게 다룰 수 있도록 함
Decorator
객체에 동적으로 책임을 추가할 수 있도록 함
기능의 유연한 확증을 상속이 아닌 방법으로 가능하도록 함
Bridge
기능 계층과 구현 계층을 분리.
Flyweight
객체 생성을 최소화 하여 메모리 낭비를 제거.
[출처] [Pattern] Design Pattern 분류|작성자 밤바
객체가 어떻게 상호작용하고 기능을 분산하는지 서술
Strategy
알고리즘군이 존재할 경우, 각각의 알고르짐을 별도의 클래스로 캡슐화
알고리즘 교환이 client영향을 주지 않도록함
Command
request를 객체로 캡슐화
서로 다른 request를 parameter로 구분
Iterator
내부 구조를 노출하지 않고 복합 객체의 원소를 순차적으로 접근하는 방법을 제공
Observer
객체 사이의 1:다 관계의 종속성을 정의
한 객체의 상태가 변경될 경우 종속된 다른 객체에 통보하는 방법을 제공
Visitor
Template Method
Chain of Responsibility
Mediator
Memento
Interpreter
'Tips > 디자인 패턴 (Design Pattern)' 카테고리의 다른 글
디자인 패턴 강좌 - Builder (2) | 2012.09.29 |
---|---|
디자인 패턴 강좌 - Abstract Factory (0) | 2012.09.22 |
디자인 패턴 강좌 - Factory Method (0) | 2012.09.15 |
디자인 패턴 강좌 - 들어가며 (0) | 2012.09.01 |