题
IOC容器应包含哪些最重要的功能?您可以在 15行代码,但它应包括什么才能“有用”?在一个项目中?
解决方案
这是一个相当广泛的主题,并赋予了很多主观性,但我会尝试从非常务实的角度回答。鉴于我所参与的项目以及我在IoC方面的经验,我认为至少有三个巨头需要从有用性方面来寻找。
- 配置 - 您使用的任何IoC都需要具有一些允许您配置该容器行为的中心位置。无论是配置文件还是可以在某个地方包装在全局类中的一组很好的API调用,如果容器不容易配置,那么这将是一个令人头痛的问题。
- 终身管理 - 您真的想要一个能够允许不同对象生命周期的容器。您可能希望某个对象始终获得新的IPersonCreator,但您只需要在任何给定时间存在一个IPersonService。
- 自动依赖注入 - 好的,所以依赖注入是IoC构建在其上的概念,但您不希望自己管理它。这里的想法是,如果你第一次要求IPersonCreator,它应该自动解决它的所有依赖关系及其依赖关系等。 醇>
总的来说,你需要什么取决于项目,但有几个容器可以满足你的需求。
其他提示
按重要性降序排列:
- 至少允许setter和构造函数注入,
- 从代码中分离配置,
- 允许不同的配置样式(XML或注释), 醇>
这些代码需要超过15行,但这些对我来说似乎很关键。
不隶属于 StackOverflow