在读到这个反模式和这里关于它的许多担忧之后,我再次感到困惑。
如果我有一个域模型,并捕获了必须在数据传输对象中持久化的数据,这会使我的域模型成为数据的包装器吗?在这种情况下,我将使用贫血域模型。但是,如果我在包装器上添加了足够的域逻辑,那么在什么时候它才会成为真正的域模型呢?
我的印象是,捕获域模型中必须持久化的内容违反了良好的实践,并创建了贫乏的域模型反模式。但是,如果您使用关系数据库,就无法避免挑选出构成对象状态的部分并将其保存。
因为我对这些概念很困惑,所以我不确定我写的东西是否有意义。请随时要求澄清。
发布于 2009-11-27 17:13:01
当它包含了构成业务领域的所有(或大部分)行为时,它就变成了一个“真正的”领域模型(注意,我强调的是业务逻辑逻辑(),而不是UI或其他正交问题)。
如果您正在使用无处不在的语言,并且不断从您的领域专家那里获得反馈,您就会知道您是在正确的轨道上(当专家看到您的领域模型时,他们应该点头)。如果你不做这些事情,你就不是在做DDD (Eric Evans speak about it)。
谈到DTO:不要忽视它们。从实现的角度来看,您将需要它们在层/层之间传送数据。如何将DTO和真正的域对象组合在一起,实际上取决于您所使用的技术。
正如早先的回答中提到的,也许你对数据和持久性的关注分散了你对真正的领域建模的注意力……
发布于 2009-11-27 16:07:51
我的脑海中出现了两个有趣的东西:
发布于 2009-11-27 11:25:29
但是如果我在包装器上添加了足够的域逻辑,那么在什么时候它才会成为一个真正的域模型呢?
通过以随意的方式添加东西来达到领域模型是可能的,但肯定不是领域驱动的设计。(我知道这并不是很有帮助。我自己倾向于认为非常以数据为中心,在某些情况下,要从这种观点中走出来需要付出很大的努力。)
https://stackoverflow.com/questions/1805641
复制相似问题