디자인 패턴에서 강조하는 사항을 도메인 패턴에 맞게 적절하게 수정해야 함.

도메인 주도 설계에서 디자인 패턴을 활용하려면 동시에 두 가지 수준에서 패턴을 바라봐야 함

  1. 코드 내에 포함된 기술적인 측면을 다루는 디자인 패턴
  2. 모델 내에 포함된 개념 패턴

이 장에서는 COMPOSITE과 STRATEGY는 고전적인 디자인 패턴을 다른 방식으로 생각함으로써 도메인 문제에 어떻게 적용할 수 있는지를 보여줌

STRATEGY(전략, POLICY[정책]라고도 함)


image.png

도메인 모델에는 기술적인 이유로 필요한 것이 아니라 실제적으로 문제 도메인 관점에서 의미 있는 프로세스가 존재함. 여러 종류의 프로세스 중 하나를 선택해야 할 경우 적절한 프로세스를 선택하는 데 따르는 복합성과 다수의 프로세스가 존재한다는 사실 자체에 내포된 복잡성이 결합되어 결국 감당하기 어려운 지경에 이름.

프로세스 모델링 작업을 하다 보면 대상 프로세스를 절적하게 모델링하는 방법이 여러가지…

→ 이러면 프로세스의 정의는 점점 더 어색해지고 복잡해짐

→ 한 프로세스의 행위가 나머지 프로세스의 행위와 혼합되면서 원래의 프로세스가 지니고 있던 실제적인 행위가 불분명해짐

우리는 프로세스의 중심 개념과 변경되는 부분을 분리하고자 함.

→ 두 부분을 분리한다면 중심 프로세스와 그 외의 부가적인 선택사항을 더욱 명확하게 식별할 수 있게 될 것.

→ STRATEGY는 모델에 포함된 하나의 개념으로 사용되며 해당 모델을 구현한 코드에 반영됨

정리