POCO类在域驱动设计中有行为,例如Validate()
方法,是真的吗?
答案 0 :(得分:4)
是的,域驱动设计中的域模型类应该关注行为,如果这就是你的意思。
答案 1 :(得分:4)
是 - “实体”封装了数据和对象的行为 - 因此它不再是普通的旧合同对象,它是一个域对象。
想到它的一种方法是想象你的其他代码都没有看到对象的属性,所以他们不能这样做......
if (myDomainObject.Name != null) ...
他们必须致电
if (myDomainObject.IsValid()) ...
当您更改有关使其有效的规则时,只需要在域对象中完成更改,因为您已停止将逻辑从外部泄漏到使用它的代码中。
答案 2 :(得分:2)
没有。他们没有像Validate()
这样的方法。
DDD实体应始终处于有效状态。这就是我们在类而不是公共属性设置器上使用行为(方法)的原因。
这种方法是否导致POCO具有依赖性?
没有。通常一切都取决于DDD模型,反之亦然。