gpt4 book ai didi

dependency-injection - 使用 IoC 容器连接依赖项的首选方式是什么?

转载 作者:行者123 更新时间:2023-12-04 18:54:43 24 4
gpt4 key购买 nike

我相信大多数 IoC 容器都允许您使用 XML 配置文件连接依赖项。使用配置文件与在代码中注册依赖项有什么优缺点?

最佳答案

这些优点和缺点是基于我对 spring 的工作。其他容器可能略有不同。

XML


  • 灵活
  • 在某些方面比注解更强大
  • 对类的依赖关系进行非常明确的建模

  • 骗局
  • 详细
  • 重构困难
  • 在多个文件之间切换

  • 注释


  • 少文件切换
  • 简单接线的自动配置
  • 比 xml 更简洁

  • 骗局
  • 代码中的更多部署特定数据(通常您可以使用 xml 配置覆盖它)
  • xml 总是需要的,至少要设置基于 annonation 的配置
  • 在搜索用作依赖项的类时,注释魔术可能会导致混淆

  • 代码


  • 可以利用强类型语言(例如 C#、Java)
  • 一些编译时检查(虽然不能静态检查依赖项)
  • 可以利用 DSL(例如 Binsor、Fluent 接口(interface))
  • 比 XML 更简洁(例如,您不需要总是指定整个程序集限定名称(在谈论 .net 时))

  • 骗局
  • 通过代码接线可能会导致复杂的接线
  • 代码库中对 IOC 容器的硬依赖

  • 我正在使用 XML+Annotation 的组合。一些特别是关于数据库访问的东西总是通过 xml 配置的,而 Controller 或服务之类的东西大多是通过代码中的注释来配置的。

    [编辑:我借用了 Mauschs 代码 PROs]

    关于dependency-injection - 使用 IoC 容器连接依赖项的首选方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/868329/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com