각 변형에 대해 명령을 가질 수 있습니다. 또는 하나의 명령을 포함하고 그 변형을 처리 할 수 있습니다.CQRS 및 DDD의 컨텍스트에서 약간 다른 유스 케이스를 어떻게 처리합니까?
설명하기 위해 세 가지 사례 ("이상", "CommentOnPhoto", "CommentOnWall", "CommentOnArticle")가 있습니다. 모두 내부적으로 동일한 주석 달기 시스템을 사용합니다. 세 가지의 차이는 :
- 다른 정책을 점검 할 필요가있다 (
CommentOnPhotoPolicy
는CommentOnWallPolicy
,CommentOnArticlePolicy
) - 다른 집계는 우리가 부를 수 있도록 저장소에서 가져온 할
photo.attachComment(comment)
,article.attachComment(comment)
등 있다
각 변형에 대해 하나의 명령 경로를 사용하는 경우 각 명령은 모두 매우 비슷하기 때문에 일부 기본 경로 인 CommentOnSomething
명령을 상속해야합니까?
모든 사용 사례에 대해 하나의 마더 명령어 경로를 사용하는 경우 필요에 따라 필요한 정책 및 저장소를 가져 오기 위해 Service Locator를 사용해야합니다 (각 사용 사례에만 10 개 이상의 종속성을 주입하지 않습니다. 하나를 사용하는 것). 서비스 로케이터 사용을 숨기기 위해 추상적 인 공장 등을 사용한다면 이것이 받아 들여질 수 있습니까? 우리는 CommentPolicyFactory
과 CommentableFactory
을 가지고 있습니다. 내부적으로 올바른 정책과 적절한 집계를 제공하기 위해 Service Locator를 사용합니다.
나는 정책과 aggreagtes가 다른 경우 "약간"이라고 부릅니다. 귀하의 도메인에 따라 다르지만 귀하의 예는 3 가지 다른 경계 상황을 가질 수 있습니다. – jlvaquero