代码之家  ›  专栏  ›  技术社区  ›  Ben

领域模型中的依赖注入技术

  •  4
  • Ben  · 技术社区  · 6 年前

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

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

    有人有什么相关的经验可以分享吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Wim Coenen    14 年前

    我应该注射疫苗吗 IT将服务转换为

    可以 有道理,取决于你的情况。如果您总是避免将服务注入实体,那么这可能会导致 anemic domain model

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

    http://fabiomaulo.blogspot.com/2008/11/entities-behavior-injection.html

        2
  •  4
  •   Tomas Aschan    14 年前

    我不希望域对象进行翻译,而是使用翻译服务和域对象(或相关属性值)作为参数,并返回翻译后的值。例如,你可以简单地

    var translatedString = yourServiceInstance.Translate(theDomainObject.Property);