【发布时间】:2012-07-11 09:59:27
【问题描述】:
服务具有 dal 和域模型层。域模型可以访问 dal 以通过它操作 db。现在需要从域模型中的另一个对象中获取一些属性(这将显着简化客户端的使用)。但我对将这些属性(来自“外星人”)对象填充到给定对象的位置感到困惑。我可以在域模型中做到这一点吗?还是在服务本身?
由于我是 DDD 的新手,我会用我自己的话来解释它。项目结构如下: DAL(了解 DTO) DTO DomainModel(了解 DAL 和 DTO) 服务(了解 DomainModel 和 DTO)
服务返回 DTO,假设我需要向 dto1(由 domainModel1 类操作)添加一些属性,这些属性可以由 domainModel2 类自然检索。那么,问题是哪一层最适合这个?
P.S.既然模型是一个系统的投影并且是它的元素之间的关系,那么没有理由不从 domainModel1 调用 daominModel2,是吗?
【问题讨论】:
-
你所说的外星人是指在另一个聚合根中吗?如果你可以使用 DDD 术语,你会问一些问题而不显示类结构。但如果不是,你需要展示足够的结构让人们知道为什么你认为这个物体是外星人
-
抱歉,我对 DDD 很陌生。外星人的意思是,如果要修改 classA 以使其具有 classB 的某些属性,那么我应该在哪里使用 classB 检索其属性的能力并将其中一些复制到 classA
-
您有什么用例吗?它取决于用例和满足用例的类。如果 B 类可以访问 dal 并且还与 A 类有关系,则没有一般 DDD 原因表明更新 A 的逻辑不能在 B 中
标签: design-patterns domain-driven-design