architecture - 了解 DTO 和贫血域模型

标签 architecture domain-driven-design n-tier-architecture

我是领域模式的新手,我需要确保我理解到目前为止所读到的内容!!,请告诉我以下句子是否正确或没有违反与 DDD 相关的原则

enter image description here

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/

相关文章:

javascript - 为什么 ReactJS 将代码与 HTML 混合的方式是更好的设计?

domain-driven-design - 在 DDD 架构中将表映射到域类

nhibernate - NHibernate 上的值对象的单独表

c# - DDD : Is it ok to generate/update my entities classes from changes in database schema?

javascript - 你们如何处理操作顺序很重要的复杂状态情况?

database-design - 在应用程序中合并用户帐户的架构

Golang 和 DDD 域建模

architecture - 六边形架构 - 一个简单的用例

wpf - 使用 Windows Workflow Foundation(WF) 作为表示规则引擎是否明智?

.net - 什么对象应该从数据访问层返回到业务层一个n层系统