저는 도메인 기반 디자인에 대한 현재의 이해를 사용하여 새 응용 프로그램을 작성했습니다. 지금까지 데이터베이스에서 가져 오거나 데이터베이스에서 검색 할 저장소와 도메인에있는 엔티티를 나타내는 클래스가 있습니다.도메인 기반 디자인 : 복잡한 데이터 목록을 검색하는 방법
내가 겪고있는 문제는 UI에서 목록의 항목이 내 도메인의 항목에 직접 매핑되지 않는 몇 가지 목록을 표시해야한다는 것입니다. 목록 중 일부는 특정 엔티티에 대해 상당히 열정적 인로드를 수행하여 작성할 수 있지만 다른 데이터는 기본적으로 검색시 합성되며 엔티티의 일부가 아닙니다. 희망적으로 문제를보다 명확하게 설명 할 수있는 예제를 제공하겠습니다.
내 도메인에서 나는 평가 (답변 할 일련의 질문)와 응답 (각 사용자가 평가에 제공 한 답변)을 평가에 제공합니다. 나는 또한 행동을 취했다. 각 조치는 응답 (제출, 승인, 거부 등)으로 수행 된 조치를 나타냅니다. 나는 또한 사용자가있다.
표시해야하는 데이터 목록 중 하나는 응답 및 평가 (응답되지 않은)를 포함하며, 각 줄에는 현재 응답으로 작업하고있는 사용자에 대한 정보가 포함됩니다 (이는 응답에 취해진 행동을보고 검색 시간). 각 광고 항목에는 지금까지 응답에서 취한 조치 인 0 개 이상의 하위 항목도 포함됩니다.
지금 당장은 도메인 엔티티로이 전체 데이터 세트를 표시 할 수있는 방법이 없습니다. 내 첫 번째 반응은 데이터베이스에서 데이터 테이블을 검색하고 내 도메인 엔티티를 우회하는 것입니다. 하지만 도메인 객체로 작업하고 객체 자체에 구운 다른 엔티티 간의 관계를 유지하는 데 많은 가치가 있음을 알 수 있습니다. 그래서 내 다음 아이디어는이 목록을 지원하기 위해 내 도메인 엔티티를 수정하는 것이지만이 엔트리 시나리오를 지원하기 위해 내 엔티티에 이상한 속성을 추가하는 것과 둘 중 하나만 수행하면 성능이 저하 될 수 있다는 우려가 있습니다. 내 애플 리케이션의 몇 군데에만 그 데이터가 필요할 때 개체.
좋아, 이제 서비스에 대해 읽고 있습니다. 서비스에서 데이터를보기로 표시한다고 말하면보기는 무엇입니까? 이 목적을 위해 정의 된 클래스입니까? 도메인 엔터티로 구성되어 있습니까? –
MVC 관점에서보기를 사용하고 있습니다. 즉, 작업을 표시하는 것입니다. 실제 관련 데이터는 서비스에 의해 집계되며,보기가 전달되어 귀하의 경우에는 귀하가 언급 한 "데이터 목록"이 표시됩니다.서비스는보기에 전달하기 전에 별도의 클래스 (특히 많은 뷰가 동일한 데이터를 사용하는 경우)에서 랩핑하도록 결정할 수 있지만 이는 반드시 필요한 것은 아닙니다. –