gpt4 book ai didi

domain-model - 丰富与贫血的领域模型

转载 作者:行者123 更新时间:2023-12-04 03:04:13 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

去年关闭。



Improve this question




我正在决定是否应该在贫血域模型上使用富域模型,并寻找两者的好例子。

我一直在使用贫血域模型构建 Web 应用程序,由服务支持 --> 存储库 --> 存储层系统,使用 FluentValidation 进行 BL 验证,并将我的所有 BL 放在服务层中。

我读过 Eric Evan 的 DDD 书,他(以及 Fowler 和其他人)似乎认为贫血域模型是一种反模式。

所以我真的很想深入了解这个问题。

此外,我真的在寻找富域模型的一些好的(基本)示例,以及它提供的贫血域模型的好处。

最佳答案

不同之处在于贫血模型将逻辑与数据分开。该逻辑通常放在名为 **Service 的类中。 , **Util , **Manager , **Helper等等。这些类实现数据解释逻辑,因此将数据模型作为参数。例如

public BigDecimal calculateTotal(Order order){
...
}

而富域方法则通过将数据解释逻辑置于富域模型中来反转这一点。因此,它将逻辑和数据放在一起,丰富的域模型如下所示:
order.getTotal();

这对对象一致性有很大影响。由于数据解释逻辑包装了数据(数据只能通过对象方法访问),因此方法可以对其他数据的状态变化使用react -> 这就是我们所说的行为。

在贫血模型中,数据模型不能保证它们处于合法状态,而在富域模型中则可以。富域模型应用面向对象的原则,如封装、信息隐藏以及将数据和逻辑结合在一起,因此从面向对象的角度来看,贫血模型是一种反模式。

如需更深入的了解,请查看我的博客 https://www.link-intersystems.com/blog/2011/10/01/anemic-vs-rich-domain-models/

关于domain-model - 丰富与贫血的领域模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23314330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com