1부 | 디자인 패턴에 익숙해지다
Part 1 Iterator 처리를 반복하다
Part 2 Adapter 사이에 끼워 재사용한다
2부 | 하위 클래스에 맡기다
Part 3 Template Method 하위 클래스에서 구체적으로 처리한다
Part 4 Factory Method 하위 클래스에서 인스턴스를 만든다
3부 | 인스턴스를 만들다
Part 5 Singleton 인스턴스를 단 하나만 만든다
Part 6 Prototype 복사해서 인스턴스를 만든다
Part 7 Builder 복잡한 인스턴스를 조립한다
Part 8 Abstract Factory 관련 부품을 조합하여 제품을 만든다
4부 | 나누어 생각하다
Part 9 Bridge 기능 계층과 구현 계층을 나눈다
Part 10 Strategy 알고리즘을 모두 바꾼다
5부 | 동일시하다
Part 11 Composite 그릇과 내용물을 동일시한다
Part 12 Decorator 장식틀과 내용물을 동일시한다
6부 | 데이터 구조를 돌아다니다
Part 13 Visitor 데이터 구조를 돌아다니면서 처리한다
Part 14 Chain of Responsibility 책임을 떠넘긴다
7부 | 단순화한다
Part 15 Facade 단순한 창구를 만든다
Part 16 Mediator 중재자를 통해서 처리하다
8부 | 상태를 관리하다
Part 17 Observer 상태 변화를 알려 준다
Part 18 Memento 상태를 저장한다
Part 19 State 상태를 클래스로 표현한다
9부 | 낭비를 없애다
Part 20 Flyweight 같은 것은 공유해서 낭비를 없앤다
Part 21 Proxy 필요해지면 만든다
10부 | 클래스로 표현한다
Part 22 Command 명령을 클래스로 표현한다
Part 23 Interpreter 문법 규칙을 클래스로 표현한다
▶ 3판에서 달라진 점
ㆍ예제 프로그램을 현대 Java 언어(람다식, 확장 for문, enum형 등로 업데이트
ㆍ이해하기 쉽게 설명하되 현대의 관점에서 예제와 설명(의존성 주입, 보안 관련 설명 등 수정
ㆍ고전적인 디자인 패턴 23개는 그대로 다루면서 대응하는 예제 프로그램도 심플하게 유지
▶ 이 책의 독자
ㆍ객체지향에 관심이 있는 사람
ㆍ디자인 패턴에 관심이 있는 사람 (특히 GoF 책을 보고 어렵다고 느낀 사람
ㆍJava 프로그래머 (특히 추상 클래스나 인터페이스가 잘 이해되지 않는 사람
▶ 이 책의 구성
Part 1 Iterator 처리를 반복한다
여러 요소가 모여 있는 집합에서 순서대로 요소를 처리하는 Iterator 패턴을 학습합니다.
Part 2 Adapter 사이에 끼워 재사용한다
서로 다른 인터페이스(API의 클래스를 연결하는 Adapter 패턴을 학습합니다
Part 3 Template Method - 하위 클래스에서 구체적으로 처리한다
상위 클래스에서 기능의 뼈대를 정의하고, 하위 클래스에서 세부 처리를 구현하는 Template Method 패턴을 학습합니다.
Part 4 Factory Method - 하위 클래스에서 인스턴스를 만든다
상위 클래스에서는 인스턴스를 생성하는 방법을 결정하고, 하위 클래스에서 인스턴스를 생성하는 Factory Method 패턴을 학습합니다.
Part 5 Singleton - 인스턴스를 단 하나만 만든다
인스턴스가 하나만 존재하는 Singleton 패턴을 학습합니다.
Part 6 Prototype - 복사해서 인스턴스를 만든다
원형이 되는 인스턴스를 복사해서 인스턴스를 만드는 Prototype 패턴을 학습합니다.
Part 7 Builder - 복잡한 인스턴스를 조립한다
복잡한 인스턴스를 단계적으로 조립하는 Builder 패턴을 학습합니다.
Part 8 Abstract Factory - 관련 부품을 조합하여 제품을 만든다
공장처럼 부품을 조합