IOC容器应包含哪些最重要的功能?您可以在 15行代码,但它应包括什么才能“有用”?在一个项目中?

有帮助吗?

解决方案

这是一个相当广泛的主题,并赋予了很多主观性,但我会尝试从非常务实的角度回答。鉴于我所参与的项目以及我在IoC方面的经验,我认为至少有三个巨头需要从有用性方面来寻找。

  1. 配置 - 您使用的任何IoC都需要具有一些允许您配置该容器行为的中心位置。无论是配置文件还是可以在某个地方包装在全局类中的一组很好的API调用,如果容器不容易配置,那么这将是一个令人头痛的问题。
  2. 终身管理 - 您真的想要一个能够允许不同对象生命周期的容器。您可能希望某个对象始终获得新的IPersonCreator,但您只需要在任何给定时间存在一个IPersonService。
  3. 自动依赖注入 - 好的,所以依赖注入是IoC构建在其上的概念,但您不希望自己管理它。这里的想法是,如果你第一次要求IPersonCreator,它应该自动解决它的所有依赖关系及其依赖关系等。
  4. 总的来说,你需要什么取决于项目,但有几个容器可以满足你的需求。

其他提示

按重要性降序排列:

  1. 至少允许setter和构造函数注入,
  2. 从代码中分离配置,
  3. 允许不同的配置样式(XML或注释),
  4. 这些代码需要超过15行,但这些对我来说似乎很关键。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top