作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
看过领域驱动设计并阅读了贫血领域模型是一种反模式,认为好吧,也许应该在我们的领域实体中加入更多的行为。行为需要使用 SOLID 方法来处理灵 active ,因此需要 DI 框架和容器来允许将一些行为注入(inject)实体。
然而,在连接实体时似乎存在不匹配,因为我们的实体将来自诸如 Entity Framework 或 NHibernate 之类的 ORM 框架,而行为来自依赖注入(inject)容器。
我想您需要一种方法让 ORM 也插入一个 DI 容器。
只是想知道其他人在想要获得更丰富的模型但也使用 ORM 和 DI 容器时是如何解决这个问题的。
最佳答案
1- 使用 ORM 实体作为您的域实体不是一个好主意。因为您的域实体构成了 DDD 应用程序的核心,并且应该具有最少的依赖关系。如果你决定在 future 改变你的 ORM 怎么办? ORM 可以在您的存储库中使用,但请记住,您需要在存储库返回它们之前将 ORM 实体映射到您的域实体。
2-您的域实体应该具有行为,但它们仅限于该实体。任何涉及其他服务或依赖项的行为都应该转到域服务。因此,您的域实体不会依赖其他服务。它们通常甚至不需要抽象,因此不需要使用 IoC 容器来解决它们。
关于entity-framework - 避免贫血域模型如何与 ORM、依赖注入(inject)和可靠方法一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20434588/
我是一名优秀的程序员,十分优秀!