- 디자인 패턴은 소프트웨어 설계 시 특정 상황에서 자주 만나는 문제를 해결하기 위해 사용할 수 있는 재사용 가능한 "솔루션"을 말한다.
- 또는 효율적인 코드를 만들기 위한 방법론이라고 할 수 있다.
생성패턴(Creational Pattern) | 구조패턴(Structual Pattern) | 행동(Behavioral Pattern) |
---|---|---|
Singleton | Adapter | Command |
Abstract Factory | Composite | Interpreter |
Factory Method | Decorator | Iterator |
Builder | Facade | Mediator |
Prototype | Flyweight | Memento |
Proxy | Observer | |
State | ||
Strategy | ||
Template Method |
패턴의 설계 구조를 보면 대부분 비슷한데, 그 이유는 객체지향적인 설계로부터 문제를 해결하기 위해 적용할 수 있는 확정성 추구 방법이 대부분 두 가지 구조로 정리되기 때문이다.
하나는 클래스 상속이고, 다른 하나는 오브젝트 합성이다.
따라서 패턴의 결과로 나온 코드나 설계 구조만 보면 대부분 비슷해보인다.
패턴에서 가장 중요한 것은 각 패턴의 핵심이 담긴 목적 또는 의도이다.
패턴을 적용할 상황, 해결해야 할 문제, 솔루션의 구조와 각 요소의 역할과 함께 핵심 의도가 무엇인지를 기억해둬야 한다.