juniors-dev-study / domain-driven-design

1 stars 0 forks source link

12장 모델과 디자인 패턴의 연결 #13

Closed chanhyeong closed 3 years ago

chanhyeong commented 3 years ago

진짜 디자인 패턴을 알아야 하는 장..


디자인 패턴이란 무엇인가?

도메인 패턴으로 사용할 수 있는 것: 디자인 패턴의 일부. 강조하는 사항을 도메인 패턴에 맞게 적절하게 수정해야 함

STRATEGY

여러 종류의 프로세스 중 하나를 선택해야 할 경우

프로세스의 중심 개념과 변경되는 부분을 분리

예제

항로 결정 시 계산 (Leg Magnitude Policy, 구간 등급 정책) -> 가장 빠른 항로, 가장 저렴한 항로

기타

애플리케이션의 객체 수가 늘어날 수 있다
=> 컨텍스트(클래스)가 공유할 수 있는, 상태 없는(stateless) 객체로 strategies 를 구현 (번역이 되게 애매하게 되어 있는 듯)
=> 하나의 클래스 안에 static 으로 만들어라 이런건가
=> the overhead can be reduced by implementing STRATEGIES as stateless objects that contexts can share
=> 책에서 번역: 컨텍스트를 공유하는 상태없는 객체로 strategy 를 구현해서 부담을 줄일 수 있다

image

COMPOSITE

적용 기준

간단 용어 설명

y2o2u2n commented 3 years ago

모델과 디자인 패턴의 연결

디자인 패턴은 특정한 상황에서 일반적인 설계 문제를 해결하고자 상호 교류하는 수정 가능한 객체와 클래스에 관해 설명한 것이다. [Gamma et al. 1995, p.3]

STRATEGY @

도메인 관점에서 의미있는 프로세스가 존재하고 이 프로세스가 여러 종류 중 하나를 선택해야 할 때 별도의 전략 객체로 분리해서 모델로 표현하는 패턴

A 전략을 B 전략으로 쉽게 갈아끼기 좋을 것 같음

COMPOSITE @

도메인 개념 간의 부분/전체 계층 구조가 존재하거나 하부의 모든 부분이 실제로 동일한 유형의 개념으로 구성되는 추상화를 발견할 때 내부에 포함된 모든 구성요소를 포괄하는 추상 타입을 정의하는 패턴

조회나 변경을 위해 계층구조를 탐색하는 것보다 추상화된 메서드를 제공하니 복잡도가 줄 것 같음