그렇다면 계약서/요율표를 얻기 위해 읽기 모델을 사용하고이를 도메인에 매핑 하시겠습니까? 읽기가 최적화 될 것이라는 점을 명심하십시오. 단순한 GetByID가 아니라 성능을 위해 읽기 저장소에서 오는 것이 바람직합니다.
의도적으로 집계는 집계 경계 외부의 모델 상태와 즉시 일치 할 필요는 없습니다. "다음"상태는 현재 상태의 함수이고 전달 된 인수는 전달됩니다. 이상적인 집계는 읽은 모델에 전혀 의존하지 않고, care의 상태가 어디에서 왔는지를 나타냅니다.
즉, "이 집계에 견적을 쓸 때 그 총액에서 현재 환율을 얻으려면 어떻게해야합니까?"라는 질문에 어려움을 겪고 있다면 뭔가 잘못되었습니다.
하지만 즉각적인 일관성이 필요하지 않으면 (대부분의 경우 그렇지 않은 경우) 여러 가지 가능성이 있습니다.
가장 직접적인 것은 클라이언트가 읽기 모델에서 필요한 상태를 얻은 다음 해당 상태를 쓰기 모델로 전달한다는 것입니다. 명령에 상태를로드하면 REST가 성공적으로 수행 된 이유 중 하나 인 "혼동"이 방지됩니다.
경우에 따라 모델의 다른 부분의 "최근"상태를보다시기 적절하게 유지하려는 경우가 있습니다. 이 경우 응용 프로그램이 변경 내용을 집계에 제출하기 전에 클라이언트 대신 모델을 쿼리하는 것이 좋습니다. 완벽하게 합리적인.
어떤 경우에는 집계 자체가 쿼리를 수행하기를 원할 것입니다. 이를 달성하는 가장 일반적인 방법은 도메인 서비스를 이용하는 것입니다. 쿼리 개체를 집계에 전달하고 집계는 적절한 상태로 쿼리를 호출하고 응답을 가져온 다음 자체에 결과를 적용하는 방법을 선택합니다. 현재하는 일.
모두에서 모델에서 돌아오고있는 상태는 최근 인 것으로 반드시 최신 일 필요는 없습니다. 예를 들어 모델의 다른 부분이 현재 쿼리 결과가 변경되는 방식으로 변경되지 않는다는 보장은 없습니다.
이러한 경우 모두 호출자 (특히 집계)는 도메인 서비스에서 제공하는 계산의 세부 사항으로부터 완벽하게 격리됩니다. 도메인 서비스는 도메인 서비스가 제공해야하는 유일한 부분입니다. 반환 된 비율은 읽기 모델에서 계산 된 쓰기 모델에서 계산되거나 캐시에서 가져온 것입니다.
내 질문에 도메인 내에서 읽은 모델에 액세스 한 다음 도메인 개체에 매핑해야합니다.
아니오. 쓰기 모델은 자체 상태 및 매개 변수와 상호 작용해야합니다. 명령을 처리하기 위해 읽기 모델에서 데이터를 조회해야하는 경우 매개 변수 중 하나는 도메인 서비스 구현이어야하며 여기서 도메인 서비스 구현은 조회를 수행하고 그 결과를 도메인 객체로 변환합니다.
따옴표가 도메인 모델의 최상위 엔티티 인 경우 - 내가 예상 한 특별한 증거가 없으면 따옴표를 쓰는 것이 좋습니다. – VoiceOfUnreason
그렇습니다. 제작하는 것은 글쓰기가 가능하지만 생산에 필요한 정보를 얻는 것이 중요합니다. 이것은 글쓰기가 될 수 있습니다. 로직이 다른 로직 (예 : 사용자/계정 설정)에 의존하여 도메인 로직을 구동합니다. –
따옴표가 어떻게 무효화됩니까? 얼마 후에 변경되는 요금을 읽으면 어떨까요? 그 다음에 문제가되지 않는다면 RateService 인터페이스를 도메인에 선언하면 구현은 어디서나 데이터를 가져올 수 있습니다. – plalx