응용 프로그램에서 사용법을 다르게 고려한다면 엔티티의 하위 집합을 만드는 것이 합리적입니까? IE. 나는 엔티티를 가져 와서 첫 번째 엔트리의 속성 중 일부만 가지고 새로운 엔티티를 정의한다. 이제 중복되는 엔티티가 2 개 있지만 다르게 사용되지만 궁극적으로 동일한 데이터 테이블에 유지됩니다. 이 엔티티는 다른 저장소를 통해 액세스 할 수 있습니다.엔티티를 DDD의 작은 엔티티로 분할 하시겠습니까?
답변
나는 DDD에 대해 배우기 시작 했으므로 잘못하면 의견을 말하고 알려주십시오. 내 생각은 다음과 같습니다.
엔티티가 다른 저장소를 통해 액세스되는 경우 엔 고유 한 클래스가 필요합니다. 또한 현재 중복되는 비트가 앞으로 중복되지 않을 수 있으며 공유 기본 클래스를 사용하는 경우 도메인을 더럽힐 가능성이 높습니다.
두 클래스가 별도의 하위 도메인의 일부인 경우 별도로 있어야합니다. 내 생각은 내가 듣고 기억하는 예제의 일부를 기반으로합니다. Rob Connery's interview on Hanselminutes. 제품에는 소비자에게 중요한 몇 가지 특성 (가격 책정, 설명 등)과 창고 담당자에게 중요한 몇 가지 속성 (창고의 위치, 무게, 크기 등)이 있습니다. 그 에피소드에서 내게 암시하는 바는 두 제품이 한 번 정의되고 공유되는 대신 도메인에서 별도로 정의되어야한다는 것입니다.
"응용 프로그램에서의 사용법"을 사용하면 다른 부분을 다른보기로 표시한다는 의미인데, Fowler와 같은 프리젠 테이션 패턴을 그의 Presentation Model에서 사용하는 것이 좋습니다 (또는 WPF 응용 프로그램을 개발할 수 있습니다. Model-View-ViewModel (MVVM)이라는 WPF 전용 버전을 사용하십시오.
"사용법"에 따라 다른 하위 도메인 또는 도메인의 일부에있는 엔티티의 다른 속성을 사용한다는 의미라면 Chris에 동의합니다. 아마도 다른 엔티티로 분리하는 것이 좋습니다. 그 이유는 도메인 모델에서 해당 특정 (하위) 도메인에서 엔티티가 사용되는 방식을 반영해야하기 때문입니다. 그리고 상황에 따라 엔티티의 다른 부분을 사용하는 경우에는 엔티티의 이름 지정에 반영되어야하는 설정에서 다른 의미가있을 수 있습니다. 그리고 그것이 나 였다면 아마 엔티티 각각에 대해 하나의 저장소를 만들 것입니다. 엔티티와 리포지토리간에 1 : 1 매핑을 갖는 것이 대부분의 경우 경험 한 것 같습니다. 그러나 다시. Chris, Rob Conery, DDD를 시도하는 개발자의 90 % 나는 DDD 게임에 상당히 익숙하다. 그래서 나의 경험은 더 경험 많은 누군가에 의해 무효화 될지도 모른다. :)
- 1. 거대한 XSD를 분할 하시겠습니까?
- 2. 큰 계산을 분할 하시겠습니까?
- 3. 왜 "데이터베이스의 클래스 인스턴스를 엔티티로 저장 하시겠습니까?"
- 4. DDD의 앱 수준 설정은 무엇입니까?
- 5. C# 이미지를 더 작은 블록으로 분할
- 6. DDD의 서브 클래스와 추상 클래스
- 7. ddd의 many to many relationship
- 8. 작은 단계로 리팩토링 하시겠습니까?
- 9. DDD의 엔티티를 사용하여 집계 루트를 유지/복원하는 방법은 무엇입니까? 도메인 기반 디자인에서 다음과 같은 정의를 바탕으로
- 10. 일반 엔티티에서 자체 추적 엔티티로 마이그레이션하는 방법은 무엇입니까?
- 11. Silverlight DataPager - 3X3으로 분할 하시겠습니까?
- 12. Java에서 문자열을 *로 분할 하시겠습니까?
- 13. 엔티티를 처음으로 저장하려면 어떻게해야합니까? 기존 엔티티를 추가해야합니다.
- 14. HTML 엔티티로 작업하기
- 15. 태그를 HTML 엔티티로 변환
- 16. 문자열을 작은 문자열로 압축 하시겠습니까?
- 17. 분할 Subversion 저장소를 여러 Mercurial 저장소로 분할 하시겠습니까?
- 18. 엔티티를 다른 레이어에 전달 하시겠습니까? (ddd noob)
- 19. 핵심 데이터 엔티티를 enum으로 사용 하시겠습니까?
- 20. 여러 개의 IDENTITY PK가있는 엔티티를 제작 하시겠습니까?
- 21. 두 벡터에서 공통 엔티티를 제거 하시겠습니까?
- 22. JPA @Discriminator : 한 엔티티를 다른 엔티티로 캐스팅하는 방법 (식별자를 기반으로 함)
- 23. 장기 실행 SQL 쿼리를 여러 개의 작은 쿼리로 분할
- 24. 유틸리티 DLL을 C++의 더 작은 구성 요소로 분할
- 25. 하나의 큰 테이블 또는 두 개의 작은 테이블로 분할?
- 26. 큰 WPF 캔버스를 여러 개의 작은 PNG 이미지로 분할
- 27. 작은 구성 요소로 Silverlight 응용 프로그램을 분할 할 때의 문제
- 28. 이미지의 공백을 엔티티로 변경하는 정규식
- 29. javascript 파일을 html 엔티티로 변환
- 30. 'SingleOrDefault'는 Linq에서 엔티티로 지원하지 않습니다.
이것은 나의 성향이었다 – zsharp