디자인 패턴을 다 알고 있다고 전제를 하고 설명을 합니다.
초보자에게 비추입니다.
그리고 번역도 매끄럽지 못하네여.
디자인 패턴은 기술인가, 과학인가?
디자인 패턴을 소프트웨어 공학의 구성요소로 볼 수 있는가? 이 분야에 패턴이 적합한지 판단할 수 있는가? 각 패턴이 얼마나 서로 어울리는지 장담할 수 있는가? 패턴은 가져다 쓰기만 하면 되는 냉동식품인가?
패턴을 종합적인 방법으로 접근할 수 없다면 우리는 이에 대한 답을 내릴 수 없다. 엘리멘틀 디자인 패턴은 패턴을 네 가지 카테고리로 나누며, 패턴을 종합적인 관점에서 볼 수 있는 도구를 제공한다.
디자인 패턴이 언어의 결점을 보완한다고 믿는가?
언어에 따라 쉽게 구현할 수 있는 패턴이 있고, 이해하기 어려운 패턴이 있다고 어떤 언어가 더 우월한 것은 아니다. 구체적인 개념이 언어 자체 기능으로 들어 있든 구체적인 기능을 개발자가 직접 구현해야 하든, 이는 디자인 패턴과 무관하다. 소프트웨어 설계와 구현은 별개이다. 설계는 개념이고, 개념을 특정 언어로 구체화하는 작업이 구현이다. 다른 언어에서 표현되는 차이를 두고 근본적인 차이라고 오해해서는 안 된다. 이 책에서는 C, C++, Java, Objective-C 등의 다양한 언어로 패턴을 설명한다.
디자인 패턴은 암기해야 하는가?
패턴은 문제의 맥락에서 변형하고, 구부려서 틀에 맞추고, 특정 집단의 필요성에 맞출 수 있게 만들어졌다. 원리를 이해하지 못하고 패턴 예제를 그대로 적용하면 잘못된 설계를 저지르기 쉽다. 이 책에서는 원리와 개념을 중심으로 패턴을 설명한다.
어떤 독자를 위한 책인가?
1장 디자인 패턴 개론
1.1 집단적 미신
1.2 기술인가 과학인가
패턴은 암기해야 한다는 관점
패턴이 언어에 종속된다는 관점
미신을 버리고 과학으로
2장 엘리멘틀 디자인 패턴
2.1 유래와 배경
2.2 어디에, 어떻게, 왜
데커레이터 패턴 해부하기
심도 있는 주제들
문맥
디자인 스페이스
2.3 주요 EDP
2.4 이 장의 포인트
3장 패턴 인스턴스 표현법, PIN
3.1 기본 표현법
3.2 PIN 박스
단순 PIN 박스
표준 PIN 박스
확장 PIN 박스
이층 PIN 박스와 다중 연결성
박피와 통합
3.3 이 장의 포인트
4장 EDP 활용하기
4.1 패턴의 합성
동위원소
4.2 데커레이터 패턴 새로 만들기
4.3 리팩토링
4.4 전체 구도
4.5 부록은 왜 읽어야 하나
4.6 고급 주제 3가지
집중적인 문서화와 교육
지표
절차적 분석
4.7 이 장의 포인트
5장 EDP 카탈로그
객체 생성 Create Object
가져오기 Retrieve
상속 Inheritance
추상 인터페이스 Abstract Interface
위임 Delegation
리디렉션 Redirection
병합 Conglomeration
되부름 Recursion
메서드 되돌림 Revert Method
메서드 확장 Extend Method
병합 위임 Delegated Conglomeration
되부름 리디렉션 Redirected Recursion
위임 신탁 Trusted Delegation
리디렉션 신탁 Trusted Redirection
위임 대행 Deputized Delegation
리디렉션 대행 Deputized Redirection
6장 중간 합성 패턴
약정 이행 메서드 Fulfill Method
새 객체 가져오기 Retrieve New
공유 객체 가져오기 Retrieve Shared
객체화 클래스 Objectifier
객체 되부름 Object Recursion
7장 GoF 합성 패턴
7.1 생성 패턴
추상 팩토리 Abstract Factory
팩토리 메서드 Factory Method
7.2 구조 패턴
데커레이터 Decorator
프록시 Proxy
7.3장 기능 패턴
책임 연쇄 Chain of Responsibility
템플릿 메서드 Template Method
7.4 이 장의 포인트
부록 A. Rho 계산법( -calculus)
A.1 의존 연산자
A.2 이행성과 동위원소
A.3 유사도
A.4 EDP 공식
A.5 합성 공식과 환원 공식
A.6 패턴 인스턴스 표현법과 역할
A.7 EDP 정의
객체 생성 Create Object
가져오기 Retrieve
상속 Inheritance
추상 인터페이스 Abstract Interface
위임 Delegation
리디렉션 Redirection
병합 Conglomeration
되부름 Recursion
메서드 되돌림 Revert Method
메서드 확장 Extend Method
병합 위임 Delegated Conglomeration
되부름 리디렉션 Redirected Recursion
위임 신탁 Trusted Delegation
리디렉션 신탁 Trusted Redirection
위임 대행 Deputized Delegation
리디렉션 대행 Deputized Redirection
A.8 중간 합성 패턴 정의
약정 이행 메서드 Fulfill Method
새 객체 가져오기 Retrieve New
공유 객체 가져오기 Retrieve Shared
객체화 클래스 Objectifier
객체 되부름 Object Recursion
A.9 GoF 합성 패턴 정의
추상 팩토리 Abstract Factory
팩토리 메서드 Factory Method
데커레이터 Decorator
프록시 Proxy
책임 연쇄 Chain of Responsibility
템플릿 메서드 Template Method
Head First Design Patterns: 스토리가 있는 패턴 학습법
에릭 프리먼 , 엘리자베스 프리먼 , 케이시 시에라 , 버트 베이츠