《디자인 패턴》(Design Patterns, ISBN 0201633612)은 소프트웨어 설계에 있어 공통된 문제들에 대한 표준적인 해법과 작명법을 제안한 책이다. 이 분야의 사인방(Gang of Four, 줄여 GoF)으로 불리는 에리히 감마(Erich Gamma), 리처드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시데스(John Vlissides)가 같이 썼고, 한국어 판은 김정아의 번역으로 피어슨 에듀케이션 코리아를 통해 출판되었다.
책의 첫 번째 반절은 다양한 디자인 패턴의 정의에 할애하고 있고, 나머지 반절은 실제적으로 유용한 디자인 패턴들을 나열하고 있다. 책의 예제들은 객체지향적인 언어인 C++과 스몰토크로 제시되고 있다. 다음은 책에서 언급되고 있는 패턴의 리스트이다.
생성 패턴(Creational Patterns)[편집]
- 추상 팩토리 패턴: 동일한 주제의 다른 팩토리를 묶어 준다.
- 빌더 패턴: 생성(construction)과 표기(representation)를 분리해 복잡한 객체를 생성한다
- 팩토리 메서드 패턴: 생성할 객체의 클래스를 국한하지 않고 객체를 생성한다.
- 프로토타입 패턴: 기존 객체를 복제함으로써 객체를 생성한다.
- 싱글턴 패턴: 한 클래스에 한 객체만 존재하도록 제한한다.
구조 패턴(Structural Patterns)[편집]
- 어댑터 패턴: 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록, 타 클래스의 인터페이스를 기존 인터페이스에 덧씌운다.
- 브리지 패턴: 추상화와 구현을 분리해 둘을 각각 따로 발전시킬 수 있다.
- 합성 패턴: 0개, 1개 혹은 그 이상의 객체를 묶어 하나의 객체로 이용할 수 있다.
- 데코레이터 패턴: 기존 객체의 매서드에 새로운 행동을 추가하거나 오버라이드 할 수 있다.
- 파사드 패턴: 많은 분량의 코드에 접근할 수 있는 단순한 인터페이스를 제공한다.
- 플라이웨이트 패턴: 다수의 유사한 객체를 생성·조작하는 비용을 절감할 수 있다.
- 프록시 패턴: 접근 조절, 비용 절감, 복잡도 감소를 위해 접근이 힘든 객체에 대한 대역을 제공한다.
행위 패턴(Behavioral Patterns)[편집]
- 책임연쇄 패턴(Chain of responsibility): 일련의 처리 객체들에 명령을 대행
- 커맨드 패턴: 작업(action)과 매개변수를 묶어놓은 객체를 생성
- 해석자 패턴 (Interpreter pattern): 특정 언어를 구현
- 반복자 패턴 (Iterator pattern): 내부 구조를 드러내지 않고 객체의 구성요소들을 순차적으로 접근
- 중개자 패턴 (Mediator pattern): 둘 이상의 클래스가 가지고 있는 매서드 들을 알고 있는 유일한 클래스로 클래스들을 느슨하게 연결
- 메멘토 패턴 (Memento pattern): 객체를 이전 상태로 복구하는 능력 제공
- 옵저버 패턴: 옵저버 객체들이 이벤트를 볼 수 있게 하는 패턴
- 상태 패턴 (State pattern)
- 전략 패턴 (Strategy pattern)
- 템플릿 메서드 패턴 (Template method pattern)
- 방문자 패턴 (Visitor pattern)
출처 - http://ko.wikipedia.org/wiki/%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4_(%EC%B1%85)
'Design Pattern > Common' 카테고리의 다른 글
디자인 패턴 - 종류 (0) | 2013.07.26 |
---|---|
Programming paradigms (0) | 2013.01.01 |
DSL(domain-specific language) (0) | 2013.01.01 |
Core J2EE Patterns (0) | 2012.11.30 |
Rich Domain Model (0) | 2012.11.05 |