- 발표 방식
디자인 패턴 큰 카테고리 (생성패턴, 구조패턴, 행위패턴)별 패턴 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 패턴은 독립적인 관계