POCO类在领域驱动设计中有Validate()
方法等行为,是真的吗?
问问题
1329 次
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 回答