2010-08-23 2 views
2

다른 클래스와 몇 개의 관계가있는 클래스를 가져옵니다. 첫 번째 클래스는 집계 (루트)로 볼 수 있습니다. 서비스 계층의 관점에서 볼 때 통화를 어떻게 분할해야할까요?집합, 리포지토리 및 서비스 계층

  1. 를 호출 전체 개체 그래프의 총의 저장소와 관계의 절약 (클래스의 유형 당 하나 명의 저장소를 처리하기 위해 특정 저장소 다른 저장소에서 호출합니다.
  2. 전화 집계의 저장소에 대한 전체 객체 그래프를 처리하고 하나의 메소드를 모두 처리합니다 (동일한 메소드에서 모든 관계를 저장합니다).
  3. 서비스 레이어 내에서 집계에 대한 리포지토리를 호출 한 다음 집계에 대한 리포지토리를 호출하고 서비스 레이어에서 다시 호출합니다. 관련 클래스의 리포지토리를 호출하십시오.
  4. s 사이에 추가 레이어 추가 ervice 및 리포지토리 내에서 그리고 그 여분의 레이어 내에서 옵션 3처럼.

나는 프로덕션 코드에서 이미 세 가지 가능한 솔루션을 모두 보았지만 깨끗한 솔루션과 이유에 대한 이유가 있습니다. 그 접근법을 선택할 것입니다.

답변

0

나를 위해 옵션 1과 2 사이의 선택이 될 것입니다 ("가능한 한 단순한"상위 서비스 계층 "을 유지하는 것을 좋아합니다).

내가 선택한 것 중 어느 것이 골재의 개별 유형이 사용되는 방법에 조금 의존 할 것입니다. 그들은 항상 (적어도 현재)이 하나의 집계의 일부로 사용되며 독립 실행 형이 아니라면 아마도 집계 리포지토리도 처리 할 것입니다 (그러나 여전히 별도의 방법으로). 그러나 개별 파트 (또는 다른 집계의 일부로) 독립된 저장소 개체를 사용하는쪽으로 향하고 집계 저장소에서 해당 저장소를 호출 할 수도 있습니다.

관련 문제