【发布时间】:2014-03-23 11:35:16
【问题描述】:
我有一个聚合根“汽车” 汽车有一个包含“Wheel”对象的值对象“Wheels”列表。 由于没有轮子的汽车不应该存在(至少根据我们的业务逻辑),为了构建汽车,这在适当的领域驱动设计中是否有效:
double radius = 17.0;
List<Wheel> carWheels = new List<Wheel>();
carWheels.add(new Wheel(radius));
Car aCar = new Car(carWheels);
我的问题基本上是,在聚合根之外实例化值对象以构造聚合根(在构造函数中传递值对象)是否是一种好习惯。 我不想在无效状态下创建聚合根,并希望遵循最佳实践。如果上面的代码不是最佳实践,应该怎么做呢?
【问题讨论】:
标签: domain-driven-design aggregate aggregateroot value-objects