DDD를 따르려고하고 있는데 Question 클래스와 Feedback 클래스가 있습니다. 질문 수, 피드백 수 및 메타 작업으로 간주되는 많은 다른 요소를 계산할 수 있기를 원합니다.DDD의 리포지토리 클래스
이러한 "메타"메소드는 클래스에 속한 다른 메소드와 동일한 저장소에 있거나, 데이터베이스를 쿼리하는 다른 메타 메소드가있는 MetaRepository에 있어야합니다 (이 경우 모든 클래스가 혼합됩니다.)?
DDD를 따르려고하고 있는데 Question 클래스와 Feedback 클래스가 있습니다. 질문 수, 피드백 수 및 메타 작업으로 간주되는 많은 다른 요소를 계산할 수 있기를 원합니다.DDD의 리포지토리 클래스
이러한 "메타"메소드는 클래스에 속한 다른 메소드와 동일한 저장소에 있거나, 데이터베이스를 쿼리하는 다른 메타 메소드가있는 MetaRepository에 있어야합니다 (이 경우 모든 클래스가 혼합됩니다.)?
아무것도 설명하지 목적으로 MetaRepository
을 만들 본 적이 없어 집계 당 둘 이상의 저장소가있는 것을 금지합니다. 기본 쿼리 및 라이프 사이클 메소드 (IQuestionsRepository)를위한 하나의 저장소와 '메타'또는 '통계'목적 (IQuestionsStatistics)을위한 별도의 리포지토리를 가질 수 있습니다. 이것은 하나의 저장소 단위로 원칙을 따르면 '메소드 폭발'과 SRP 위반이 발생할 수있는 큰 도메인에서 매우 잘 작동합니다. 다음 DDD는 기본 OOP 원칙을 위반해서는 안됩니다.
나를 위해 각 저장소는 요소 계산에 대한 책임이 있으며 getById, getAll ... (표준 메소드) 중 하나의 메소드입니다.
도메인의 중요한 부분을 나타내는이 질문 ('사용자 의견 수')과 수량은 무엇입니까?
그렇다면 합리적인 쿼리처럼 보이기 때문에 저장소에 저장하는 것이 좋습니다. 결국 리포지토리의 작업은 포함 된 집계에 대한 도메인 관련 질문에 대답하는 것입니다.
그렇지 않으면 예 : 이것이 아마도 사용자에게 표시되는 부수적 인 물건 일 경우 이러한 질문은 도메인 계층 외부의 응용 프로그램 서비스에 속할 수 있습니다.
나는 일반적인 저장소를 도메인 모델 클래스 당 하나의 저장소의 이상에 충실하거나 사용하는 것이
나는 개인적으로 누군가가 당신이 DDD의
어떤 디자인이 내 도메인에 가장 정확하게 매핑됩니까? – blueberryfields
사실 나는 둘 다 괜찮다고 생각했습니다. 이것은 여전히 화이트 보드에 있기 때문에 나는 변화를 열어두고있다. 내가 무엇을해야 할지를 말하지 않고 선택해야한다면, 그들이 속한 클래스에 메타 메소드를 넣을 것이다. – LuckyLuke
두 맵 모두 도메인에 똑같이 적용됩니까? 예를 들어, 질문/피드백은 문서 또는 설문지와 같은 일종의 컨테이너의 일부일 수 있습니다. 컨테이너는 그것이 얼마나 많이 들어 있는지, 무엇이 무엇인지, 그리고 계산 방법을 원할 수도 있습니다. – blueberryfields