저는 DDD를 처음 접했을 때 항상 재미있는 개념을 중심으로 머리를 감싸면서 필연적으로 어떤 점이나 상황에 도달하게됩니다. 특정 문제에 직면하여 학습해야합니다.DDD - 엔티티에서 값 객체를 파생합니다.
사용자에 관한 두 개의 다른 날짜 : DateOfBirth
및 이 있다고 가정 해보십시오. 두 가지 값을 따로 따로 구현하면 많은 의미가 있습니다. 그 일은 쉽습니다.
이제 응용 프로그램에서 Users
이 Projects
에 참여할 수 있다고 가정 해 봅시다. 프로젝트에는 복수 members
과이를 소유 한 단일 사용자가있을 수 있습니다.
따라서 ProjectMembers
과 ProjectOwner
은 모두 후드 아래 Users
입니다.
Project
에서이 기능을 구현하는 방법은 두 가지가 있습니다
A : 강한 입력이 - 다음 값 개체로 "행동"클래스 ProjectMember
및 ProjectOwner
만들기가. 랩퍼로 작동 시키거나 User
클래스를 확장하십시오.
B : 게으른 접근법 - 원하는 행동/기대에 따라 메소드와 매개 변수의 이름을 지정하고 User
오브젝트를 누르기 만하면됩니다.
내 생각에 B 다음에 오는 것은 DDD 원칙을 삭제하는 것을 의미합니다.
다음과 같은 A는 수십 개의 클래스로 이어질 것이며, 많은 클래스는 아무 것도하지 않고 형식 안전성을 강화합니다.
단순한 날짜와 비교하여 사용자가 엔티티이거나 골재를 모으는 동시에 혼란 스럽기 때문에 혼란 스럽습니다.
A, B 또는 세 번째 옵션이 있습니까?