목차

역자서문
한국어판 서문
추천사 by Ralph Johnson
추천사 by Martin Fowler
서문
내용
목적
이 책을 읽어야 하는 사람
필요한 배경지식
이 책의 사용법
이 책의 역사
거인들의 어깨에 기대어
감사의 글

 

1장. 이 책을 쓴 이유

과도한 설계
패턴 만능주의
미진한 설계
테스트 주도 개발과 지속적인 리팩터링
리팩터링과 패턴
발전적 설계

 

2장. 리팩터링

리팩터링이란?
리팩터링을 하는 이유
많은 눈
사람이 읽기 쉬운 코드
깔끔하게 유지하기
작은 단계
설계 부채
새로운 아키텍처 발전시키기
복합 리팩터링과 테스트 주도 리팩터링
복합 리팩터링의 장점
리팩터링 도구

 

3장. 패턴

패턴이란?
패턴 중독
패턴을 구현하는 다양한 방법
패턴 목표, 패턴 지향, 패턴 제거 리팩터링
패턴은 코드를 더 복잡하게 만드는가?
패턴 지식
패턴을 이용한 사전 설계

 

4장. 코드 속의 냄새

중복된 코드
긴 메서드
복잡한 조건문
기본 타입에 대한 강박관념
추잡한 노출
문어발 솔루션
인터페이스가 서로 다른 대체 클래스
게으른 클래스
거대한 클래스
Switch 문
조합의 폭발적 증가
괴짜 솔루션

 

5장. 패턴을 고려한 리팩터링 카탈로그

리팩터링 형식
카탈로그에서 참조한 프로젝트
시작점
학습 순서

 

6장. 생성

Replace Constructors with Creation Methods
Move Creation Knowledge to Factory
Encapsulate Classes with Factory
Introduce Polymorphic Creation with Factory Method
Encapsulate Composite with Builder
Inline Singleton

 

7장. 단순화

Compose Method
Replace Conditional Logic with Strategy
Move Embellishment to Decorator
Replace State-Altering Conditionals with State
Replace Implicit Tree with Composite
Replace Conditional Dispatcher with Command

 

8장. 일반화

Form Template Method
Extract Composite
Replace One/Many Distinction with Composite
Replace Hard-Coded Notifications with Observer
Unify Interfaces with Adapter
Extract Adapter
Replace Implicit Language with Interpreter

 

9장. 보호

Replace Type Code with Class
Limit Instantiation with Singleton
Introduce Null Object

 

10장. 축적

Move Accumulation to Collecting Parameter
Move Accumulation to Visitor

 

11장. 유틸리티

Chain Constructor
Unify Interfaces
Extract Parameter

 

후기 by John Brant, Don Roberts

refactoring to patterns 칭찬의 말

참고문헌
인덱스

이 글은 스프링노트에서 작성되었습니다.