본문 바로가기

프로그램언어/GoF

GoF 디자인 패턴 이렇게 활용하기

GoF 디자인 패턴 이렇게 활용하기.
지난 몇 년전에 프로그램을 공부한 기본 바탕으로 지금까지 직장에서 사용해 왔다.

수년이 흐르는 동안 내가 사용했 것 들이 당연이시 하고 무작성 사용해왔던 것 같다.

간단한 내용인데 가끔 어?라는 생각이 들었다. 당연시 되어 왔던 것들이 생각없이

지난날들을 뒤돌아 보면서 다시 공부하고 좀더 구체적으로 논리적으로 정리 할

필요성을 느끼며, 책 한권을 통해 좀더 구체적이고 도움이 되고자 정리를 하고자 한다.

GOF 디자인 패턴 이렇게 활용한다 (C++로 배우는 패턴의 이해와 활용) 상세보기
장세찬 지음 | 한빛미디어 펴냄
C++을 활용하는 디자인 패턴 전문서. GoF의 23가지 디자인 패턴이 어떤 문제를 해결하기 위해 만들어졌는지 알 수 있도록 주어진 문제 유형을 분석한다. 주어진 문제를 해결할 때 일반적으로 떠올릴 수 있는 설계를 먼저 살펴본 후, 문제를 해결할 수 있는 디자인 패턴을 적용한다. 문제 해결을 위한 디자인 패턴을 살펴봄으로써, 패턴의 실제 내용과 유도 과정, 문제 해결 능력, 등을 체득할 수 있다. 또한 디자인 패턴에 대해 이
 

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.
디자인 패턴 활용

'프로그램언어 > GoF' 카테고리의 다른 글

Factory Method 패턴 < 작성중 >  (0) 2008.08.06
Build 패턴  (0) 2008.07.25