![]() |
1
2
在MVC体系结构中,M(模型)包括 二者都 这个 领域层 和 数据访问层 . 所以Sanderson的例子没有错。 也就是说,当您使用这两个层(而不是只有一个)实现域模型时,验证逻辑应该转到域层,以增强域对象的内聚性,并避免验证逻辑在许多地方(例如在每个具体的存储库中)重复。 |
![]() |
2
1
他们绝对属于你
领域层
(在那里你可以实现
看起来这个验证原理与 Paul Stovell (退房 this article of his )它非常强大,我经常使用它。基本上:
所以,和你一样无知
领域层
是关于持久性的问题,我相信你的实体至少应该知道他们什么时候被持久化。这个
|
![]() |
3
0
我通常更喜欢 始终有效 域对象。 域对象只能通过防止对象无效的方法进行更改。 另一方面,表示对象可能包含临时的无效值,或者无法正确解析的值。但是,只有当数据有效时,表示层才会向域对象发出方法调用。 域对象强制不变量,表示对象向用户指示如何修改其输入以尊重约束。 |
![]() |
4
0
验证应该在域层中完成。您的业务逻辑是域的一部分,而不是数据访问。验证可能不在域对象本身(实际类)内部完成,但它应该位于域层内部。 |