0

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

4

3 回答 3

5

是的——“实体”封装了对象的数据和行为——所以它不再是一个普通的旧合约对象,它是一个域对象。

一种思考方式是想象您的其他代码都无法看到对象的属性,因此它们不能...

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

他们必须打电话

if (myDomainObject.IsValid()) ...

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

于 2012-11-15T22:31:12.637 回答
4

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

于 2012-11-15T22:27:55.207 回答
2

不,他们没有像Validate().

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

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

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

于 2012-11-16T10:04:50.523 回答