![]() |
1
3
根据域驱动的设计,域对象是不知道持久性的。这意味着-它们不应该包含连接到数据库的基础结构代码。然而,存储库抽象被认为是域模型的一部分。因此,这是'允许'使用这些,但我个人喜欢避免。 如果你说的是域对象的建模,那么不,把它们建模成愚蠢的数据包并不是一件好事。这会导致 anemic model 如果你说的是在从持久性机制中检索域对象时重建它们,那么是的——基本上这只是从头开始重建域对象。但这里有一个棘手的部分-这个重建和其他与持久性相关的问题不应该侵入您的域。您不应该仅仅为了使持久性工作而拥有没有任何验证的公共添加/删除函数。在现实中-很难保持模型完全干净(事实上,它已经和你正在使用的编程语言搞砸了,除了你自己建模的现实之外,不存在可以容纳它的纯媒体),而且总是会有一些隐含的依赖关系(例如-当使用NHibernate ORM时,所有东西都必须标记为虚拟的)。 认为 . 从阅读开始 'blue book' sample application 直到你 了解原因 编辑:哦。。。忘了 ddd yahoo group 看看这个(过于简单和糟糕的一个)例子。从客户端来看,除非你作弊,否则你将无法创建一个拥有name.Length>50
域驱动的设计在一开始确实令人困惑。最糟糕的事情可能发生(通常发生)是当开发人员开始 不知从哪儿冒出来的 he is doing it right
|
![]() |
Tony Raimo · 域实体是否应该调用存储库? 7 年前 |
![]() |
Seb · DDD只读存储库返回“值对象” 7 年前 |
![]() |
tlt · 使用嵌套对象和大集合进行聚合根优化 7 年前 |
![]() |
PatrickSJ · DDD,状态对象/值对象 7 年前 |
![]() |
msmani · DDD更改聚合根id 7 年前 |
![]() |
DuskMcDusk · 逻辑和性能中的聚合根冲突 7 年前 |