设计模式 – 贫血域模型与域模型

在阅读关于这种反模式和在这里的许多关切之后,再次感到困惑。

如果我有域模型并捕获必须在数据传输对象中持久存储的数据,那么会使我的域模型围绕数据进行包装吗?在这种情况下,我将使用贫血域模型。但是,如果我在该包装器上添加了足够的域逻辑,那么它在什么时候成为真正的域模型呢?

我得到的印象是,捕获域模型中必须持久的内容违反良好做法,并创建了贫穷域模型反模式。但是,如果使用关系数据库,则无法避免单独导出对象状态并保存对象的部分。

由于我对这些概念感到困惑,我不知道我写的是什么意思。随时要求澄清。

当它包含构成业务领域的所有(或大多数)行为时,它成为一个“真正的”域模型(注意我强调业务逻辑,而不是UI或其他正交关注)。

如果您使用的是无所不在的语言,并得到您的域名专家的不断反馈,您将会知道您处于正确的轨道(专家应该在看到您的域名模型时点头)。如果你不做这些事情,你不会做DDD(Eric Evans speak about it)。

在DTO的角度:不要忽视它们。从实现的角度来看,您需要它们在层/层之间传送数据。如何组合DTO和真正的域对象真的取决于您使用的技术。

正如之前的答案所暗示的那样,也许您对数据和持久性的关注可能会分散您的真实域建模…

翻译自:https://stackoverflow.com/questions/1805641/anemic-domain-model-versus-domain-model

转载注明原文:设计模式 – 贫血域模型与域模型