실전 자바 디자인 패턴
이 책은 GoF 디자인 패턴과 응용 패턴을 자바 언어로 설명하고 있다.
객체 지향 프로그래밍을 위한 기본 요소들과 자바로 구현하는 방법을 알아본다.
클래스 관계를 UML 클래스 다이어 그램으로 표기하는 법과 SOLID 객체 지향 설계 방식을 설명한다.
마지막으로 디자인 패턴을 활용하여 실전 프로젝트를 진행해 본다.
1장 : 객체 지향
1. 클래스
2. 클래스 상속
3. 오버로딩과 오버라이딩
4. 추상클래스
5. 인터페이스
6. 인터페이스 구현
2장 : 클래스 관계와 UML
1. 상속(generalization)
2. 구현(realization)
3. 연관(association)
4. 집합(aggregation)
5. 합성(composition)
6. 의존(dependency)
3장 : 객체 지향 설계 원칙
1. 단일 책임 원칙
2. 개방 폐쇄 원칙
3. 리스코프 치환 원칙
4. 인터페이스 분리 원칙
5. 의존 역전 원칙
4장 : 생성 패턴
1. 싱글턴(Singleton)
2. 빌더(Builder)
3. 팩토리 메서드(Factory Method)
4. 프로토타입(Prototype)
5. 추상팩토리(Abstract Factory)
5장 : 구조 패턴
1. 어댑터(Adapter)
2. 브리지(Bridge)
3. 컴포지트(Composite)
4. 데커레이터(Decorator)
5. 퍼사드(Facade)
6. 플라이웨이트(Flyweight)
7. 프록시(Proxy)
6장 : 행위 패턴
1. 책임 연쇄(Chain of Responsibillity)
2. 커맨드(Command)
3. 인터프리터(Interpreter)
4. 이터레이터(Iterator)
5. 미디에이터(Mediator)
6. 메멘토(Memento)
7. 옵저버(Observer)
8. 스테이트(State)
9. 스트래티지(Strategy)
10. 템플릿 메서드(Template Method)
11. 비지터(Visitor)
7장 : 모델-뷰-XXX 패턴
1. 모델-뷰(Model-View)
2. MVC(Model-View-Controller)
3. MVP(Model-View-Presenter)
4. MVVM(Model-View-ViewModel)
8장 : 모던 자바 패턴
1. 지네릭스(Generics)
2. 열거형(Enums)
3. 애너테이션(Annotation)
4. 함수형 인터페이스(Functional Interface)
5. 스트림(Stream)
9장 : 계산기 프로젝트
1. 계산기 설명
2. 책임 연쇄 패턴 적용하기
3. 수학함수 피연산자 정의하기
4. 계산기 화면 만들기
5. 모델 만들기
6. Command 패턴 적용하기
7. 사칙연산 처리하기
8. State 패턴 적용하기
9. 계산 초기화
10. 수학함수 처리하기
11. -부호 지정하기
12. 전체 소스
10장 : 페인터프로젝트
1. 페인터 설명
2. 페인터 화면 만들기
3. 모델 만들기
4. Factory Method 패턴 적용하기
5. MVC 패턴 적용하기
6. Observer 패턴 적용하기
7. Strategy 패턴 적용하기
8. State 패턴 적용하기
9. Memento 패턴 적용하기
10. 전체 소스
11장 : 게임 프로젝트
1. 게임 설명
2. 게임 화면 만들기
3. 모델 만들기
4. MVC 패턴 적용하기
5. 타원형 스프라이트 만들기
6. Singleton 패턴의 이미지 저장소 만들기
7. 이미지 스프라이트를 위한 Flyweight 패턴 적용하기
8. 텍스트 스프라이트 만들기
9. Factory를 이용한 객체 생성하기
10. 컴포지트 패턴의 복합 스프라이트 만들기
11. Abstract Factory 패턴 적용하기
12. Strategy 패턴 적용하기
13. State 패턴 적용하기
14. 마우스 이벤트 처리하기
15. 키 이벤트 처리하기
16. 게임로직 구현하기
17. 전체 소스
12장 : 그래프 프로젝트
1. 그래프 설명
2. Interpreter 패턴 적용하기
3. Decorator 패턴 적용하기
4. 변수 정의하기
5. Visitor 패턴 적용하기
6. 그래프 화면 만들기
7. 모델 만들기
8. MVC 패턴 적용하기
9. 무한대 처리하기
10. 그래픽점 데이터 정의하기
11. 유효하지 않은 값 처리하기
12. 전체 소스
부록
1. 업데이트
2. 소스다운로드