theory/디자인패턴

GoF의 디자인 패턴. 서론

아르르르를를르 2021. 8. 1. 14:25

- 디자인 패턴

특정한 전후 관계에서 일반적 설계 문제를 해결하기 위해 상호교류하는 수정 가능한 객체와 클래스들에 대한 설명

 

"설계를 더 융통성있고, 모듈화하며, 재사용 가능하고, 이해하기 쉬운 것으로 만들 수 있는 통찰력"

 

이런 객체지향의 장점을 극대화 하는 것이 디자인 패턴이다.

각 디자인 패턴은 기존 환경 내에서 반복적으로 일어나는 문제들을 설명한 후, 그 문제들에 대한 해법의 핵심을 설명한다. 똑같은 방법으로 두 번 하지 않고, 이 해법을 100만 번 이상 재사용할 수 있다.

 

- GoF(Gang of Fout)

에리히 감마(Erich Gamma), 리차드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시디스(John Vissides)
소프트웨어 개발 영역에서 디자인 패턴을 구체화하고 체계화한 사람들
23가지의 디자인 패턴을 정리하고 각각의 디자인 패턴을 생성(Creational), 구조(Structural), 행위(Behavioral) 3가지로 분류했다.

 

- 디자인 패턴 종류

패턴은 "목적"(생성, 구조, 행위)과 "범위"(클래스, 객체)에 따라 분류된다.

 

 

- 디자인 패턴 고르는 방법

1. 패턴이 어떻게 문제를 해결하는지 파악

2. 패턴의 의도를 확인

3. 패턴들 간의 관련성 파악

4. 비슷한 목적의 패턴들을 모아 공부 (생성, 구조, 행동)

5. 재설계의 원인을 파악

6. 설계에서 가변성을 가져야 하는 부분이 무엇인지 파악 (가변성 갖는 부분을 별도의 개념으로 캡슐화)

 

http://www.yes24.com/Product/Goods/17525598

 

이 책(1995년 번역됨)에서는 스몰토크와 c++로 23가지의 디자인 패턴 예시를 제공한다. 앞으로 하나씩 살펴나가 보자.