웹 사이트에서 제품을 내보내고 주문을 가져 오는 제 3 자 시스템과 통합을 구현합니다.ddd - 모든 속성을 포함하는 값 객체
디자인에서 이미 수행 된 일부 ddd 작업이 있으며 계속 진행하고 싶습니다.
주문 및 제품의 모든 속성을 값 객체로 덮어 야합니까?
- productSku를
- 제품 이름
- ProductDescription
- ProductPrice
- 등 ...
웹 사이트에서 제품을 내보내고 주문을 가져 오는 제 3 자 시스템과 통합을 구현합니다.ddd - 모든 속성을 포함하는 값 객체
디자인에서 이미 수행 된 일부 ddd 작업이 있으며 계속 진행하고 싶습니다.
주문 및 제품의 모든 속성을 값 객체로 덮어 야합니까?
이 과도한 것 같다 가능한 모든 속성을 충당하기 위해 약 100 클래스를 의미
주문 및 제품의 모든 속성은 값 객체로 덮여 야합니까?
이미 있습니다. 진정한 질문은 당신이 그 암시 적 내용을 숨기고 떠날 것인지 아니면 그것을 명백하게 할 것인지입니다.
이 과도한 것 같다 가능한 모든 속성을 충당하기 위해 약 100 클래스를 의미 :
아, 그것은 훨씬 더 얽힌보다 얻을 수있는 가능성이있다. 예를 들어, ProductPrice
은 (이는 ComputedTax
및 RoundedTax
과 공통적이며, 단위를 나타내는 Amount
및 CurrencyCode
을 포함 함) 개념을 포함합니다.
수백 가지의 다른 가치 클래스를 만드는 것이 과도하다고 느끼지 않는 언어를 선택하는 데 진지하게 고려하고 싶을 수 있습니다.
은 참조 :
주문 및 제품에 대한 모든 단일 속성이 값을 객체에 적용해야 하는가?
내가 알고있는 모든 언어에서, 프리미티브 값은 이미 값 개체입니다. 즉, 변경할 수없고 ID (예 : 문자열, 숫자 등)가 없습니다.
"해당 데이터 + 동작을 포함하도록 새 클래스를 만들어야합니까?"라는 경우 YAGNI를 말합니다. 만약 당신이 그것을 할 좋은 이유를 찾을 수 없다면 (당신은 강한 타이핑이 필요하다. 암시 적으로 명시 적으로 만들어야한다.) 그런 다음 지금하지 마라. 니가 필요할 때까지 기다려.