IOC 容器应该包含哪些最重要的功能?您可以在15 行代码中轻松创建容器,但它应该包括哪些内容才能在项目中“有用”呢?
Fossmo
问问题
732 次
2 回答
1
按重要性降序排列:
- 至少允许 setter 和 constructor 注入,
- 将配置与代码分开,
- 允许不同样式的配置(XML 或注释),
这些将需要超过 15 行代码,但这些对我来说似乎很关键。
于 2008-12-31T03:32:51.040 回答
1
这是一个相当广泛的话题,并且有很多主观性,但我会尝试从非常务实的角度来回答。鉴于我从事的项目,以及我在 IoC 方面的经验,我会说至少有三个大人物需要寻找有用性。
- 配置- 您使用的任何 IoC 都需要有一些中央位置,以便您配置该容器的行为。无论是配置文件还是可以在某个地方封装在全局类中的一组漂亮的 API 调用,如果容器不容易配置,那将是一件令人头疼的事情。
- 生命周期管理——你真的想要一个能够允许不同对象生命周期的容器。您可能希望某个对象始终获得一个新的 IPersonCreator,但您只希望在任何给定时间存在一个 IPersonService。
- 自动依赖注入- 好的,所以依赖注入是 IoC 建立在其之上的概念,但您不想自己管理它。这里的想法是,如果您第一次请求 IPersonCreator,它应该自动解决它的所有依赖项以及它们的依赖项等等。
总体而言,您需要什么取决于项目,但有几个容器可以很好地满足您的需求。
于 2008-12-31T03:34:28.947 回答