개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴
도서명:개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴
저자/출판사:최범균/인투북스
쪽수:260쪽
출판일:2013-07-05
ISBN:9788969090010
목차
Part 01 객체지향
Chapter 01 들어가기
1. 지저분해지는 코드
2. 수정하기 좋은 구조를 가진 코드
3. 소프트웨어의 가치
Chapter 02 객체 지향
1. 절차 지향과 객체 지향
1.1 절차 지향
1.2 객체 지향
2. 객체(Object)
2.1 객체의 핵심은 기능을 제공하는 것
2.2 인터페이스와 클래스
2.3 메시지
3. 객체의 책임과 크기
4. 의존
4.1 의존의 양면성
5. 캡슐화
5.1 절차 지향 방식 코드
5.2 캡슐화 된 기능 구현
5.3 캡슐화의 결과는 내부 구현 변경의 유연성 획득
5.4 캡슐화를 위한 두 개의 규칙
6. 객체 지향 설계 과정
Chapter 03 다형성과 추상 타입
1. 상속 개요
2. 다형성과 상속
2.1 인터페이스 상속과 구현 상속
3. 추상 타입과 유연함
3.1 추상 타입과 실제 구현의 연결
3.2 추상 타입을 이용한 구현 교체의 유연함
3.3 변화되는 부분을 추상화하기
3.4 인터페이스에 대고 프로그래밍하기
3.5 인터페이스는 인터페이스 사용자 입장에서 만들기
3.6 인터페이스와 테스트
Chapter 04 재사용: 상속보단 조립
1. 상속과 재사용
1.1 상속을 통한 재사용의 단점 1, 상위 클래스 변경의 어려움
1.2 상속을 통한 재사용의 단점 2, 클래스의 불필요한 증가
1.3 상속을 통한 재사용의 단점 3, 상속의 오용
2. 조립을 이용한 재사용
2.1 위임
2.2 상속은 언제 사용하나?
Part 02 설계 원칙 / DI와 서비스 로케이터
Chapter 05 설계 원칙: SOLID
1. 단일 책임 원칙(Single responsibility principle)
1.1 단일 책임 원칙 위반이 불러오는 문제점
1.2 책임이란 변화에 대한 것
2. 개방 폐쇄 원칙(Open-closed principle)
2.1 개방 폐쇄 원칙이 깨질 때의 주요 증상
2.2 개방 폐쇄 원칙은 유연함에 대한 것
3. 리스코프 치환 원칙(Liskov substitution principle)
3.1 리스코프 치환 원칙을 지키지 않을 때의 문제
3.2 리스코프 치환 원칙은 계약과 확장에 대한 것
4. 인터페이스 분리 원칙(Interface segregation principle)
4.1 인터페이스 변경과 그 영향
4.2 인터페이스 분리 원칙
4.3 인터페이스 분리 원칙은 클라이언트에 대한 것
5. 의존 역전 원칙(Dependency inversion principle)
5.1 고수준 모듈이 저수준 모듈에 의존할 때의 문제
5.2 의존 역전 원칙을 통한 변경의 유연함 확보
5.3 소스 코드 의존과 런타임 의존
5.4 의존 역전 원칙과 패키지
6. SOLID 정리
Chapter 06 DI(Dependency Injection)와 서비스 로케이터
1. 어플리케이션 영역과 메인 영역
2. DI(Dependency Injection)을 이용한 의존 객체 사용
2.1 생성자 방식과 설정 메서드 방식
2.2 DI와 테스트
2.3 스프링 프레임워크 예
3. 서비스 로케이터를 이용한 의존 객체 사용
3.1 서비스 로케이터의 구현
3.2 서비스 로케이터의 단점
Part 03 07 주요 디자인 패턴
Chapter 07 주요 디자인 패턴
1. 디자인 패턴이란?
2. 전략(Strategy) 패턴
3. 템플릿 메서드(Template Method) 패턴
3.1 상위 클래스가 흐름 제어 주체
3.2 템플릿 메서드와 전략 패턴의 조합
4. 상태(State) 패턴
4.1 상태 변경은 누가?
5. 데코레이터(Decorator) 패턴
5.1 데코레이터 패턴을 적용할 때 고려할 점
6. 프록시(proxy) 패턴
6.1 프록시 패턴을 적용할 때 고려할 점
7. 어댑터(Adapter) 패턴
8. 옵저버(Observer) 패턴
8.1 옵저버 객체에게 상태 전달 방법
8.2 옵저버에서 주제 객체 구분
8.3 옵저버 패턴 구현의 고려 사항
9. 미디에이터(Mediator) 패턴
9.1 추상 미디에이터 클래스의 재사용
10. 파사드(Facade) 패턴
10.1 파사드 패턴의 장점과 특징
11. 추상 팩토리(Abstract Factory) 패턴
12. 컴포지트(Composite) 패턴
12.1 컴포지트 패턴 구현의 고려 사항
13. 널(Null) 객체 패턴
Appendix A 추천 자료
Index