将依赖注入到域模型中的技术

Ben*_*Ben 5 dependency-injection domain-model

我有一个域模型类型。它的众多属性之一需要 ITranslationService 来提供将其返回值转换为适当语言的能力。

我是否应该将 ITranslationService 注入域模型类型的构造函数中(因此必须在实例化类型的任何地方进行更改,并且在通过 NhIbernate 检索时必须关注初始化),即使它被类型的一小部分使用(一个许多属性);或者我可以使用另一种功能模式吗?

有没有人有相关的经验可以分享?

Wim*_*nen 0

我应该将 ITranslationService 注入域模型类型的构造函数中吗

是的,这可能有意义,具体取决于您的情况。如果您总是避免将服务注入实体,那么这可能会导致贫血的领域模型,这是一种反模式。

需要实例化实体的代码可以通过使用工厂来屏蔽额外的构造函数参数,工厂负责依赖注入。

NHibernate 还可以通过构造函数将服务注入到实体中:http://fabiomaulo.blogspot.com/2008/11/entities-behavior-injection.html