현재 2번째 읽고 있는(포스팅하기 위해) 추천 받은 객체지향 책이다.
만약에 자바를 배운지 얼마 안되었거나, 객체지향을 모르고 개발 중이라면 추천드린다.
객체지향을 코드기반으로 손쉽게 접할 수 있고 다양한 상황에서 흔하게 접할 수 있는 디자인 패턴도 알려주는 책이다.
목차는 다음과 같다.
목차
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) 객체 패턴
챕터1. 들어가기는 생략하고
챕터2. 객체지향부터 포스팅을 하겠다.
마지막 Part3. 디자인패턴은 디자인패턴 카테고리에서 Gof의 디자인패턴 중심으로 포스팅할 때
같이 참고하여 진행하겠다.
'서적 > 객체지향과 디자인패턴' 카테고리의 다른 글
챕터6, DI(Dependency Injection)와 서비스 로케이터 (0) | 2021.06.04 |
---|---|
챕터5, 설계 원칙 : SOLID (0) | 2021.06.03 |
챕터4, 재사용 : 상속보단 조립 (0) | 2021.06.03 |
챕터3, 다형성과 추상 타입 (0) | 2021.06.03 |
챕터2, 객체지향 (0) | 2021.06.02 |