领域驱动设计中的POCO(DDD)

时间:2012-11-15 22:24:31

标签: domain-driven-design poco

POCO类在域驱动设计中有行为,例如Validate()方法,是真的吗?

3 个答案:

答案 0 :(得分:4)

是的,域驱动设计中的域模型类应该关注行为,如果这就是你的意思。

答案 1 :(得分:4)

是 - “实体”封装了数据和对象的行为 - 因此它不再是普通的旧合同对象,它是一个域对象。

想到它的一种方法是想象你的其他代码都没有看到对象的属性,所以他们不能这样做......

if (myDomainObject.Name != null) ...

他们必须致电

if (myDomainObject.IsValid()) ...

当您更改有关使其有效的规则时,只需要在域对象中完成更改,因为您已停止将逻辑从外部泄漏到使用它的代码中。

答案 2 :(得分:2)

没有。他们没有像Validate()这样的方法。

DDD实体应始终处于有效状态。这就是我们在类而不是公共属性设置器上使用行为(方法)的原因。

  

这种方法是否导致POCO具有依赖性?

没有。通常一切都取决于DDD模型,反之亦然。