2017-04-01 1 views
0

웹 사이트에서 제품을 내보내고 주문을 가져 오는 제 3 자 시스템과 통합을 구현합니다.ddd - 모든 속성을 포함하는 값 객체

디자인에서 이미 수행 된 일부 ddd 작업이 있으며 계속 진행하고 싶습니다.

주문 및 제품의 모든 속성을 값 객체로 덮어 야합니까?

  • productSku를
  • 제품 이름
  • ProductDescription
  • ProductPrice
  • 등 ...

답변

1
:

이 과도한 것 같다 가능한 모든 속성을 충당하기 위해 약 100 클래스를 의미

주문 및 제품의 모든 속성은 값 객체로 덮여 야합니까?

이미 있습니다. 진정한 질문은 당신이 그 암시 적 내용을 숨기고 떠날 것인지 아니면 그것을 명백하게 할 것인지입니다.

이 과도한 것 같다 가능한 모든 속성을 충당하기 위해 약 100 클래스를 의미 :

아, 그것은 훨씬 더 얽힌보다 얻을 수있는 가능성이있다. 예를 들어, ProductPrice은 (이는 ComputedTaxRoundedTax과 공통적이며, 단위를 나타내는 AmountCurrencyCode을 포함 함) 개념을 포함합니다.

수백 가지의 다른 가치 클래스를 만드는 것이 과도하다고 느끼지 않는 언어를 선택하는 데 진지하게 고려하고 싶을 수 있습니다.

은 참조 :

1

주문 및 제품에 대한 모든 단일 속성이 값을 객체에 적용해야 하는가?

내가 알고있는 모든 언어에서, 프리미티브 값은 이미 값 개체입니다. 즉, 변경할 수없고 ID (예 : 문자열, 숫자 등)가 없습니다.

"해당 데이터 + 동작을 포함하도록 새 클래스를 만들어야합니까?"라는 경우 YAGNI를 말합니다. 만약 당신이 그것을 할 좋은 이유를 찾을 수 없다면 (당신은 강한 타이핑이 필요하다. 암시 적으로 명시 적으로 만들어야한다.) 그런 다음 지금하지 마라. 니가 필요할 때까지 기다려.

관련 문제