Closed chanhyeong closed 3 years ago
모델과 디자인 패턴의 연결
디자인 패턴은 특정한 상황에서 일반적인 설계 문제를 해결하고자 상호 교류하는 수정 가능한 객체와 클래스에 관해 설명한 것이다. [Gamma et al. 1995, p.3]
STRATEGY @
도메인 관점에서 의미있는 프로세스가 존재하고 이 프로세스가 여러 종류 중 하나를 선택해야 할 때 별도의 전략 객체로 분리해서 모델로 표현하는 패턴
A 전략을 B 전략으로 쉽게 갈아끼기 좋을 것 같음
COMPOSITE @
도메인 개념 간의 부분/전체 계층 구조가 존재하거나 하부의 모든 부분이 실제로 동일한 유형의 개념으로 구성되는 추상화를 발견할 때 내부에 포함된 모든 구성요소를 포괄하는 추상 타입을 정의하는 패턴
조회나 변경을 위해 계층구조를 탐색하는 것보다 추상화된 메서드를 제공하니 복잡도가 줄 것 같음
진짜 디자인 패턴을 알아야 하는 장..
디자인 패턴이란 무엇인가?
도메인 패턴으로 사용할 수 있는 것: 디자인 패턴의 일부. 강조하는 사항을 도메인 패턴에 맞게 적절하게 수정해야 함
STRATEGY
여러 종류의 프로세스 중 하나를 선택해야 할 경우
프로세스의 중심 개념과 변경되는 부분을 분리
예제
항로 결정 시 계산 (Leg Magnitude Policy, 구간 등급 정책) -> 가장 빠른 항로, 가장 저렴한 항로
기타
애플리케이션의 객체 수가 늘어날 수 있다
=> 컨텍스트(클래스)가 공유할 수 있는, 상태 없는(stateless) 객체로 strategies 를 구현 (번역이 되게 애매하게 되어 있는 듯)
=> 하나의 클래스 안에 static 으로 만들어라 이런건가
=> the overhead can be reduced by implementing STRATEGIES as stateless objects that contexts can share
=> 책에서 번역: 컨텍스트를 공유하는 상태없는 객체로 strategy 를 구현해서 부담을 줄일 수 있다
COMPOSITE
적용 기준
간단 용어 설명
Route
Door Leg
,Leg
Composite Route