[DDD] 디자인 패턴

0️⃣1️⃣·2024년 2월 19일
0

DDD

목록 보기
13/22

모델과 디자인 패턴의 연결

Strategy

프로세스에서 변화하는 부분을 분리

  • 프로세스의 규칙과 프로세스를 제어하는 행위를 서로 분리
  • STRATEGY 디자인 패턴에 따라 규칙이나 대체 가능한 프로세스를 구현
  • 다양한 방식으로 변형된 전략 객체는 프로세스의 서로 다른 처리 방식을 표현

실제 항해 모델

  • Routing Service가 최적의 경로를 찾을 때, Leg의 총합이 가장 작은 항로를 선택할 수 있도록, Policy를 부여할 수 있음

객체의 수

  • STRATGEY와 같은 디자인 패턴을 적용할 때는 객체의 수가 문제가 될 수 있는데, 이 부분이 문제가 된다면 컨텍스트를 공유하는 상태 없는 객체로 STREATEGY를 구현해서 부담을 줄일 수 있음

Composite

  • 부분과 전체의 계층을 표현하기 위해 복합 객체를 트리 구조로 만든다. COMPOSITE 패턴을 이용하면 클라이언트가 개별 객체와 복합 객체를 동일하게 다룰 수 있다.

  • 도메인 모델에 디자인 패턴을 적용할 경우 가장 우선적으로 고려할 사항은 적용하려는 패턴의 기본 아이디어가 정말로 도메인 개념에 적합한지 여부다.

  • 도메인 개념 간의 부분/전체 계층구조가 존재해야 한다.

FLYWEIGHT

  • 제한된 수의 VALUE OBJECT 집합이 자주 사용될 경우 VALUE OBJECTFLYWEIGHT로 구현하는 것이 적절하다.

  • FLYWEIGHT는 구현에 대한 디자인 패턴 선택 사항이고, 위에서 언급한 COMPOSITE은 모델과 구현에 모두 패턴이 적용되어야 한다.

0개의 댓글