是的——“实体”封装了对象的数据和行为——所以它不再是一个普通的旧合约对象,它是一个域对象。
一种思考方式是想象你的其他代码都看不到对象的属性,所以他们不能做......
if (myDomainObject.Name != null) ...
Run Code Online (Sandbox Code Playgroud)
他们必须打电话
if (myDomainObject.IsValid()) ...
Run Code Online (Sandbox Code Playgroud)
当您更改有关使其有效的规则时,更改只需要在域对象中完成,因为您已阻止逻辑从外部泄漏到使用它的代码中。