【问题标题】:How does IOC/DI affect dependency maintenance?IOC/DI 如何影响依赖维护?
【发布时间】:2012-04-18 19:37:38
【问题描述】:

我试图了解一个大量使用 StructureMap(一个 IOC/DI 容器框架)的大型项目。所有共享组件的接口都包含在一个项目中,所有其他项目都引用该项目。

尝试构建依赖层次结构,我发现很难检测哪个项目依赖于其他项目,因为没有直接的项目引用,只有一个对接口项目的引用。

我怎样才能仍然构建层次结构树?相反,将所有接口集中在单个超级项目的良好实践中,或者它应该是“正常的”,即每个项目都包含自己的公共接口(以及实现它的预定义具体类)。这也将允许通过简单地遵循引用项目来轻松构建层次结构。

【问题讨论】:

    标签: dependencies inversion-of-control dependency-management


    【解决方案1】:

    这可能有点主观,但我会反对在一个单独的项目中将这种接口打包,其中包含彼此不自然相关的接口。如果您的应用程序的不同部分有不同的项目,那么这些项目的接口也应该是独立的。虽然有时可能有理由将接口与实现放在一个单独的项目中,但正如您所描述的那样,将来自多个实现项目的接口组合成一个巨大的接口项目不太可能是一个很好的理由。

    如果您遇到这种情况,并且想要揭示真正的运行时依赖关系,您可能需要检查配置,这可能使用注册表 DSL,或者可能需要解析 XML 配置。

    【讨论】:

    • 我完全同意接口分离。我想知道是否有特定的与 IOC 容器相关的理由不按照您描述的“正常”方式进行操作,但似乎没有。
    • 关于依赖关系,如果我做对了,注册表 DSL 只讲述容器中组件之间的依赖关系,而不是关于更高级别的项目,因此是一幅非常不完整的图景。我假设我在那里运气不好,必须手动解决这个问题?
    • 您是对的,您可能必须在从注册表或 xml 获得的任何信息中添加有关项目中事物位置的信息,并且必须手动找出这些连接,除非有从您的 IDE 中获得帮助。这可能是一团糟!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 2014-02-06
    • 2021-04-09
    • 2010-09-13
    • 2016-12-09
    • 1970-01-01
    相关资源
    最近更新 更多