我是领域模式的新手,我需要确保我理解到目前为止所读到的内容!!,请告诉我以下句子是否正确或没有违反与 DDD 相关的原则
0) DAL会接收DTO中的参数,并返回DTO(实体)的LIST中获取的数据
1)通过存储库模式解耦 BLL 和 DAL。
2)实体是DTO对象。
3) ProductCategoryData 包含 ProductData 列表。
4) 如果 BLL.ProductCategory 不包含描述业务对象的属性,则为贫血域模型 ANTI 模式。
5) BLL.ProductCategory 包含 BLL.Product 列表……我对此有不好的预感
6)我在设计贫血领域模型时避免了反模式。
7)我成功应用了领域模型模式。
8) 我使用 DTO 对象在层之间传输数据。
请跟我说话:)
最佳答案
为什么有种不好的预感?贫血听起来像是一个坏词,但您发现了什么危害?
我认为没有任何行为的对象是贫血的。我不根据数据成员来判断。
如果您出于其他原因选择将该行为转移到其他地方(例如服务),则有人认为您选择的架构比面向对象的架构更实用。真的有那么糟糕吗?
我认为像贫血这样的标签听起来很糟糕,但它们实际上只是描述了一个人的设计决策。它还可能揭示某人的 OOP 偏见。函数式语言会被 OOP 从业者认为是贫血的,但这并不一定是致命的。
更好的问题是:“我有并行模型吗?一个用于 DTO,另一个用于业务层?”如果是的话,我想说双重保养的危害远比贫血还要大。
关于architecture - 了解 DTO 和贫血域模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6428508/