DDD 접근 방식을 사용하여 데이터를 부풀린 서비스 계층에서 도메인 계층으로 이동하려고합니다. 우리는 현재 서비스에 많은 비즈니스 로직을 가지고 있으며, 이는 여러 곳에 퍼져 있으며 상속의 혜택을받지 않습니다.
우리는 대부분의 작업에 초점을 맞춘 중앙 도메인 클래스를 가지고 있습니다-무역. Trade 객체는 가격 책정 방법, 위험 평가 방법, 자체 검증 방법 등을 알게됩니다. 그런 다음 조건을 다형성으로 대체 할 수 있습니다. 예 : SimpleTrade는 한 가지 방법으로 가격을 책정하지만 ComplexTrade는 다른 방법으로 가격을 책정합니다.
그러나 이것이 트레이드 클래스를 팽창 시킬까 걱정됩니다. 실제로 자체 처리를 담당해야하지만 더 많은 기능이 추가되면 클래스 크기가 기하 급수적으로 증가합니다.
그래서 우리는 선택할 수 있습니다 :
- 처리 클래스를 Trade 클래스에 넣습니다. 처리 논리는 이제 거래 유형에 따라 다형성이지만, 거래 클래스는 이제 여러 책임 (가격 책정, 위험 등)을 가지며
- 처리 로직을 TradePricingService와 같은 다른 클래스에 넣습니다. 더 이상 거래 상속 트리에서 다형성이 아니지만 클래스는 더 작고 테스트하기 쉽습니다.
제안 된 접근법은 무엇입니까?