
(개발자가 반드시 정복해야 할) 객체 지향과 디자인 패턴
Part 01 객체 지향
1장: 들어가기
- 지저분해지는 코드
- 수정하기 좋은 구조를 가진 코드
- 소프트웨어의 가치
2장: 객체 지향
- 절차 지향과 객체 지향
> 절차 지향/객체 지향
- 객체 (Object)
> 객체의 핵심은 기능을 제공하는 것/인터페이스와 클래스/메시지
- 객체의 책임과 크기
- 의존
> 의존의 양면성
- 캡슐화
> 절차 지향 방식 코드/캡슐화 된 기능 구현/캡슐화의 결과는 내부 구현 변경의 유연성 획득/캡슐화를 위한 두 개의 규칙
- 객체 지향 설계 과정
3장: 다형성과 추상화
- 상속 개요
- 다형성과 상속
> 인터페이스 상속과 구현 상속
- 추상 타입과 유연함
> 추상 타입과 실제 구현의 연결/추상 타입을 이용한 구현 교체의 유연함/변화되는 부분을 추상화하기
> 인터페이스에 대고 프로그래밍 하기/인터페이스는 인터페이스 사용자 입장에서 만들기
> 인터페이스와 테스트
4장: 재사용: 상속보단 조립
- 상속과 재사용
> 상속을 통한 재사용의 단점 1(상위 클래스 변경 어려움)/2(클래스의 불필요한 증가)/3(상속의 오용)
- 조립을 이용한 재사용
> 위임/상속은 언제 사용하나?
Part 02 설계 원칙 / DI와 서비스 로케이터
5장: 설계 원칙: SOLID
- 단일 책임 원칙
> 단일 책임 원칙 위반이 불러오는 문제점/책임이란 변화에 대한 것
- 개방 폐쇄 원칙
> 개방 폐쇄 원칙이 깨질 때의 주요 증상/개방 폐쇄 원칙은 유연함에 대한 것
- 리스코프 치환 원칙
> 리스코프 치환 원칙을 지키지 않을 때의 문제점/리스코프 치환 원칙은 계약과 확장에 대한 것
- 인터페이스 분리 원칙
> 인터페이스 변경과 그 영향/인터페이스 분리 원칙/인터페이스 분리 원칙은 클라이언트에 대한 것
- 의존 역전 원칙
> 고수준 모듈이 저수준 모듈에 의존할 때의 문제/의존 연적 원칙을 통한 변경의 유연한 확보
> 소스 코드 의존과 런타임 의존/의존 연적 원칙과 패키지
- SOLID 정리
6장: DI와 서비스 로케이터
- 어플리케이션 영역과 메인 영역
- DI를 이용한 의존 객체 사용
> 생성자 방식과 설정 메서드 방식/DI와 테스트/스프링 프레임워크 예
- 서비스 로케이터를 이용한 의존 객체 사용
> 서비스 로케이터의 구현/서비스 로케이터의 단점
Part 03 주요 디자인 패턴
7장: 주요 디자인 패턴
- 디자인 패턴이란
- 전략 패턴
- 템플릿 메서드 패턴
- 상태 패턴
- 데코레이터 패턴
- 프록시 패턴
- 어댑터 패턴
- 옵저버 패턴
- 미디에이터 패턴
- 파사드 패턴
- 추상 팩토리 패턴
- 컴포지트 패턴
- 널 객체 패턴