- 발표 방식
디자인 패턴 큰 카테고리 (생성패턴, 구조패턴, 행위패턴)별 패턴 1개씩 발표
2일 공부 후 1일 세미나식으로 진행
재사용이 가능한 설계는 선택하고, 재사용을 방해하는 설계를 배제하도록 도와줌
이미 만든 시스템의 유지보수, 문서화 개선
클래스 명세도 정확해짐
객체 간의 상호작용, 설계의도 명확하게 정의
설계자들이 올바른 객체지향 설계를 빨리 만들 수 있도록 도와줌
- 특정한 전후 관계에서 일반적 설계 문제를 해결하기 위해 상호교류하는 수정 가능한 객체와 클래스들에 대한 설명
- 클래스
: 클래스와 서브클래스 간의 관련성(상속, 컴파일타임 정적)을 다루는 패턴
- 생성 클래스 : 객체를 생성하는 책임의 일부를 서브클래스가 담당하도록 넘김
- 구조 클래스 : 패턴은 상속을 이용해서 클래스를 복합함.
- 행동 클래스 : 상속을 이용해서 알고리즘과 제어 흐름을 기술함.
- 객체
: 객체 관련성(런타임에 변경가능, 동적)을 다루는 패턴
- 생성 객체 : 객체를 생성하는 책임을 다른 객체에게 위임함.
- 구조 객체 : 객체를 합성하는 방법을 정의함.
- 행동 객체 : 하나의 작업을 수행하기 위해 객체 집합이 어떻게 협력하는지 기술함.
- 생성
: 객체의 생성 과정에 관여하는 것
- 구조
: 클래스, 객체의 합성에 관한 패턴
- 행동
: 클래스, 객체들이 상호작용하는 방법과 책임을 분산하는 방법 정의
- Abstract Factory -- 제품 객체군 [이론 보기]
- Builder -- 복합 객체 생성 방법 [이론 보기]
- Factory Method -- 인스턴스화될 객체의 서브클래스 [이론 보기]
- Prototype -- 인스턴스화될 객체 클래스 [이론 보기]
- Singleton -- 클래스의 인스턴스가 하나일 때 [이론 보기]
- Adapter -- 객체에 대한 인터페이스 [이론 보기]
- Bridge -- 객체 구현 [이론 보기]
- Composite -- 객체의 합성과 구조 [이론 보기]
- Decorator -- 서브클래싱 없이 객체의 책임성 [이론 보기]
- Facade -- 서브시스템에 대한 인터페이스 [이론 보기]
- Flyweight -- 객체의 저장 비용 [이론 보기]
- Proxy -- 객체 접근 방법 [이론 보기]
- Chain of Responsibility -- 요청을 처리하는 객체 [이론 보기]
- Command -- 요청의 처리시점과 처리 방법 [이론 보기]
- Interpreter -- 언어의 문법과 해석 방법 [이론 보기]
- Iterator -- 집합 객체 요소들의 접근 방법 및 순회 방법 [이론 보기]
- Mediator -- 어떤 객체들이 어떻게 상호작용하는지 [이론 보기]
- Memento -- 언제 어떤 정보를 객체의 외부에 저장하는지 [이론 보기]
- Observer -- 다른 객체에 종속적인 객체 수. 종속적인 객체들의 상태 변경 방법 [이론 보기]
- State -- 객체의 상태 [이론 보기]
- Strategy -- 알고리즘 [이론 보기]
- Template Method -- 알고리즘의 단계 [이론 보기]
- Visitor -- 클래스의 변경 없이 객체에 적용할 수 있는 연산 [이론 보기]
- 복합체(Composite)는 반복자(Iterator), 방문자(Visitor)를 함께 사용해야할 때가 많음.
- 원형(Prototype) 은 추상 팩토리 패턴(Abstract Factory)의 대안 패턴
- 복합체(Composite)는 장식자(Decorator)와 의도는 다르지만 구조는 매우 비슷함.
** Adapter, Proxy, Bridge 패턴은 독립적인 관계