책정리/GoF 디자인 패턴

목차

GONII 2015. 4. 3. 12:22

PART 1. 소프트웨어 개발과 디자인 패턴

CHAPTER 1. 소프트웨어 개발과 WHAT-WHY-HOW 생각 모델

  • 소프트웨어 개발 기준 개념 또는 철학
  • 소프트웨어 개발 과정
  • 최적의 해결책
  • WHAT-WHY-HOW 생각 모델

CHAPTER 2. 소프트웨어 설계 및 디자인 패턴

  • 소프트웨어 설계
  • 좋은 소프트웨어 설계의 특성
  • 좋은 소프트웨어를 설계하기 위한 도구
  • 디자인 패턴의 정의 및 유용성
  • 디자인 패턴 이해와 활용을 위한 이 책의 접근 방법

   

PART 2. 객체 생성을 위한 디자인 패턴

CHAPTER 3. 제품군별 객체 생성 문제 : ABSTRACT FACTORY 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 ABSTRACT FACTORY 패턴
  • 기본적인 방법: 조건 비교 방식
  • 좀더 나은 방법: 객체 생성 전담 클래스 활용 방식
  • 패턴 활용 방법: ABSTRACT FACTORY 패턴
  • 샘플 코드
  • 구현 관련 사항
  • SINGLETON 패턴을 활용한 구현
  • PROTOTYPE 패턴을 활용한 구현
  • 새로운 제품 종류의 추가시 문제 해결 방법
  • ABSTRACT FACTORY 패턴 정리

CHAPTER 4. 부분 부분 생성을 통한 전체 객체 생성 문제 : BUILDER 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 BUILDER 패턴
  • 기본적인 방법: 함수 형태 접근 방식
  • 좀더 나은 방법: 번역 전담 클래스 활용 방식
  • 패턴 활용 방법: BUILDER 패턴
  • 샘플 코드
  • 구현 관련 사항
  • BUILDER 패턴 정리

CHAPTER 5. 대행 함수를 통한 객체 생성 문제 : FACTORY METHOD 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 FACTORY METHOD 패턴
  • 기본적인 방법: 클래스별 멤버 함수 구현 방식
  • 패턴 활용 방법: FACTORY METHOD 패턴
  • 샘플 코드
  • 구현 관련 사항
  • FACTORY METHOD 패턴 정리

CHAPTER 6. 복제를 통한 객체 생성 문제 : PROTOTYPE 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 PROTOTYPE 패턴
  • 기본적인 방법: 직접적인 객체 생성 방식
  • 좀더 나은 방법: 객체 생성 대행 함수 활용 방식
  • 패턴 활용 방법: PROTOTYPE 패턴
  • 샘플 코드
  • 구현 관련 사항
  • PROTOTYPE 패턴 정리

CHAPTER 7. 최대 N개로 객체 생성을 제한하는 문제 : SINGLETON 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 SINGLETON 패턴
  • 기본적인 방법: 전역 변수에 의한 객체 생성, 관리
  • 패턴 활용 방법: SINGLETON 패턴
  • 샘플 코드
  • 구현 관련 사항
  • SINGLETON 패턴 정리

CHAPTER 8. 객체 생성을 위한 디자인 패턴 정리

   

PART 3. 구조 개선을 위한 디자인 패턴

CHAPTER 9. 기존 모듈 재사용을 위한 인터페이스 변경 문제 : ADAPTER 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 ADAPTER 패턴
  • 기본적인 방법: CLIENT에 의한 구분 사용
  • 패턴 활용 방법: ADAPTER 패턴
  • 샘플 코드
  • 구현 관련 사항
  • ADAPTER 패턴 정리

CHAPTER 10. 인터페이스와 구현의 명확한 분리 문제 : BRIDGE 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 BRIDGE 패턴
  • 기본적인 방법: #IFDEF ~ #ELSE ~ #ENDIF 적용 방식
  • 좀더 나은 방법: 플랫폼별 하위 클래스 정의
  • 패턴 활용 방법: BRIDGE 패턴
  • 샘플 코드
  • 구현 관련 사항
  • BRIDGE 패턴 정리

CHAPTER 11. 부분-전체 관계 구조 취급 문제 : COMPOSITE 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 COMPOSITE 패턴
  • 기본적인 방법: 서로 다른 자료형을 활용 방식
  • 패턴 활용 방법: COMPOSITE 패턴
  • 샘플 코드
  • 구현 관련 사항
  • COMPOSITE 패턴 정리

CHAPTER 12. 특정 객체의 기능 동적 추가, 삭제 문제 : DECORATOR 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 DECORATOR 패턴
  • 기본적인 방법: 클래스 재정의를 통한 객체 기능 조정 방법
  • 또 다른 방법: 클래스 상속을 통한 객체 기능 조정 방법
  • 패턴 활용 방법: DECORATOR 패턴
  • 샘플 코드
  • 구현 관련 사항
  • DECORATOR 패턴 정리

CHAPTER 13. 명확한 서브시스템 정의 문제 : FACADE 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 FACADE 패턴
  • 기본적인 방법: 클래스들의 직접 활용 방법
  • 좀더 나은 방법: PROXY 패턴
  • 패턴 활용 방법: FACADE 패턴
  • 샘플 코드
  • 구현 관련 사항
  • FACADE 패턴 정리

CHAPTER 14. 객체의 공유 문제 : FLYWEIGHT 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 FLYWEIGHT 패턴
  • 기본적인 방법: 화면 관리 객체 정의 및 활용 방식
  • 패턴 활용 방법: FLYWEIGHT 패턴
  • 샘플 코드
  • 구현 관련 사항
  • FLYWEIGHT 패턴 정리

CHAPTER 15. 대리 객체를 통한 작업 수행 문제 : PROXY 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 PROXY 패턴
  • 기본적인 방법: 단순 캐싱 방식
  • 패턴 활용 방식: PROXY 패턴
  • 샘플 코드
  • 구현 관련 사항
  • PROXY 패턴 정리

CHAPTER 16. 구조 개선을 위한 디자인 패턴 정리

   

PART 4. 행위 수행 개선을 위한 디자인 패턴

CHAPTER 17. 수행 가능 객체까지 요청 전파 문제 : CHAIN OF RESPONSIBILITY 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 CHAIN OF RESPONSIBILITY 패턴
  • 기본적인 방법: 전담 객체 정의 방식
  • 패턴 활용 방식: CHAIN OF RESPONSIBILITY 패턴
  • 샘플 코드
  • 구현 관련 사항
  • CHAIN OF RESPONSIBILITY 패턴 정리

CHAPTER 18. 수행할 작업의 일반화 문제 : COMMAND 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 COMMAND 패턴
  • 기본적인 방법: 요청 종류에 따른 분기 방식
  • 패턴 활용 방식: COMMAND 패턴
  • 샘플 코드
  • 구현 관련 사항
  • COMMAND 패턴 정리

CHAPTER 19. 간단한 문법에 기반한 검증 및 작업 처리 문제 : INTERPRETER 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 INTERPRETER 패턴
  • 기본적인 방법: 각각 독립된 클래스를 통한 구현 방식
  • 패턴 활용 방식: INTERPRETER 패턴
  • 샘플 코드
  • 구현 관련 사항
  • INTERPRETER 패턴 정리

CHAPTER 20. 동일 자료형의 여러 객체에 대한 순차적 접근 문제 : ITERATOR 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 ITERATOR 패턴
  • 기본적인 방법: 리스트 자체를 클래스로 정의하는 방법
  • 패턴 활용 방식: ITERATOR 패턴
  • 샘플 코드
  • 구현 관련 사항
  • ITERATOR 패턴 정리

CHAPTER 21. 복잡한 M:N 객체 관계의 완화 문제 : MEDIATOR 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 MEDIATOR 패턴
  • 기본적인 방법: M:N 관계 적용 방식
  • 패턴 활용 방식: MEDIATOR 패턴
  • 샘플 코드
  • 구현 관련 사항
  • MEDIATOR 패턴 정리

CHAPTER 22. 객체의 이전 상태 복원 문제 : MEMENTO 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 MEMENTO 패턴
  • 기본적인 방법: 계산을 통한 이전 상태 복원 방식
  • 패턴 활용 방식: MEMENTO 패턴
  • 샘플 코드
  • 구현 관련 사항
  • MEMENTO 패턴 정리

CHAPTER 23. ONE SOURCE MULTIPLE USE 문제 : OBSERVER 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 OBSERVER 패턴
  • 기본적인 방법: 원본 데이터에 대한 직접적인 참조 방식
  • 패턴 활용 방식: OBSERVER 패턴
  • 샘플 코드
  • 구현 관련 사항
  • OBSERVER 패턴 정리

CHAPTER 24. 객체 상태 추가에 따른 행위 수행 변경 문제 : STATE 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 STATE 패턴
  • 기본적인 방법: 상태 비교에 따른 행위 변경 방식
  • 패턴 활용 방식: STATE 패턴
  • 샘플 코드
  • 구현 관련 사항
  • STATE 패턴 정리

CHAPTER 25. 동일 목적 알고리즘의 동적 적용 문제 : STRATEGY 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 STRATEGY 패턴
  • 기본적인 방법: 분기문에 의한 알고리즘 선택 적용 방식
  • 패턴 활용 방식: STRATEGY 패턴
  • 샘플 코드
  • 구현 관련 사항
  • STRATEGY 패턴 정리

CHAPTER 26. 알고리즘 기본 골격 재사용과 상세 구현 변경 문제 : TEMPLATE METHOD 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 TEMPLATE METHOD 패턴
  • 기본적인 방법: 서로 독립된 클래스 활용 방식
  • 패턴 활용 방식: TEMPLATE METHOD 패턴
  • 샘플 코드
  • 구현 관련 사항
  • TEMPLATE METHOD 패턴 정리

CHAPTER 27. 작업 종류를 효율적으로 추가, 변경 문제 : VISITOR 패턴

  • 문제 사례 설명
  • 다양한 접근 방법 및 VISITOR 패턴
  • 기본적인 방법: 작업 대상 클래스의 변경, 확장 방식
  • 패턴 활용 방식: VISITOR 패턴
  • 샘플 코드
  • 구현 관련 사항
  • VISITOR 패턴 정리

CHAPTER 28. 행위 수행 개선을 위한 디자인 패턴 정리

   

PART 5. 디자인 패턴 활용

CHAPTER 29. 디자인 패턴 요약 정리

CHAPTER 30. 디자인 패턴 활용

반응형