본문 바로가기

GoF의 디자인 패턴/1. 서론

(4)
1.5 카탈로그 조직화하기 패턴의 목적 · 생성 o 객체의 생성 과정에 관여 · 구조 o 클래스나 객체의 합성 · 행동 o 클래스나 객체들이 상호작용 하는 방법 o 클래스나 객체들이 책임을 분산하는 방법 패턴의 적용 범위 · 클래스 패턴 o 클래스와 서브클래스 간의 관련성을 다루는 패턴 o 관련성은 주로 상속 o 컴파일 타임에 정적으로 결정되는 패턴 · 객체 패턴 o 객체간의 관련성을 다룸 o 런타에 변경할 수 있고, 동적인 패턴 대부분은 객체 패턴이다.
1.3 디자인 패턴 기술하기 설계를 재사용하기 좋게 만들려면 설계를 하기까지의 다양한 결정, 대안, 장단점 등을 고려한 과정도 함께 적어주어야 합니다. -패턴 이름과 분류(Pattern Name and Classification) -의도(Intent) -다른 이름(Also Known As) -동기(Motivation) : 설계 문제를 제시하고, 패턴 안에서 클래스나 객체 구조가 어떻게 문제를 해결하는지 설명해 주는 일종의 시나리오 -활용성(Applicability) -구조(Structure) : 객체 모델링 기법(Object Modeling Technique: OMT)에 기반을 둔 표기법을 이용하여 해당 패턴에서 쓰는 클래스들을 시각적으로 나타냅니다. 또한, 객체 사이에 오가는 요청과 협력 관계의 순차를 표현하기 위해서 상호작용 다..
1.2 스몰토크 MVC를 사용한 디자인 패턴 MVC의 구성요소 모델 : 응용프로그램 객체 뷰 : 스크린에 모델을 디스플레이하는 방법 컨트롤러 : 사용자 인터페이스가 사용자 입력에 반응하는 방법 원래는 하나의 객체인 것을 3가지로 분리 -> 유연성 + 재사용성 증대가 목적 뷰 모델 간의 등록(subscribe)/통지(notify) 프로토콜 각 구성 요소가 독립성을 갖도록 변경(종속성을 없앰) 뷰는 반드시 모델의 state(상태)를 반영하여 모델을 디스플레이한다는 보장(guarantee) 모델의 데이터가 변경 -> 모델이 뷰에게 nofity 각 뷰는 스스로 자신 외형을 변경 이런 디자인을 통해 한 모델을 여러가지 뷰로 표현 가능 뷰/모델이 하나의 객체였다면, 한 모델에 여러가지 뷰를 제공하기 위해 데이터는 같고 인스턴스는 다른 3가지의 모델이 필요했다..
1.1 디자인 패턴이란? • 디자인 패턴 : 기존 환경내에서 반복적로 일어나는 문제들을 설명하고, 그 문제들에 대한 해법의 핵심을 설명한다. ○ 이 해법을 100만 번 이상이라도 재사용할 수 있어야 한다. 하나의 '패턴'에는 4가지 요소가 반드시 들어있다. 1. 패턴 이름(pattern name) : 한 두 단어로 설계 문제와 해법을 서술한다. a. 패턴에 이름을 부여하는 것 = 설계를 추상화 = 설계의 의도를 표현 = 설계에 대해 생각을 쉽게 한다 = 개발자들 간 의사소통이 원활 2. 문제(problem) : 언제 패턴을 사용하는가를 서술 a. 해결해야 할 문제와 그 배경(환경)을 설명 3. 해법(solution) a. 설계를 구성하는 요소 b. 요소들 간의 관계 c. 요소들 간의 책임 d. 요소들 간의 협력 e. 다만, 구체..