提供者模式是IOC的实现吗?

时间:2009-02-26 20:45:12

标签: inversion-of-control design-patterns

提供者模式是IOC的实现吗?如果没有,为什么不呢?

(阅读关于ioc的马丁福勒文章)

3 个答案:

答案 0 :(得分:7)

在我看来,是的,提供者模式是一种控制反转形式。

我的理由是什么?

在它的核心IoC是一个非常通用的概念,以至于Martin Fowler谈到从命令行读取用户输入为form of IoC

使用Provider模型,当提供程序框架决定在调用给定方法时将使用哪个提供程序时,会发生反转。例如,当您调用Membership.GetUser时,您的代码将控制使用哪个成员资格提供程序到提供程序框架。

正如Fowler所说,“控制反转是框架的一个共同特征”,如果你考虑它,许多模式都与IoC有关(例如战略模式)。我甚至可以说即使是多态性也是IoC的一种形式(我很乐意听到反驳论点)。

答案 1 :(得分:0)

Spring使用BeanFactory及其具体实现,其中最重要的是ApplicationContext。不知道Guice做了什么。

答案 2 :(得分:0)

我认为即使是这样,你也不一定会使用它而不是“IOC”或者你会错过并且有一个混乱的代码库。 IOC容器通常可以使用代码进行配置,代码可以更强大,更容易维护,而提供者模型必须在Web.Config中配置。

我实际上正在考虑离开提供者模型,因为我使用的是IOC容器,因为它看起来有点过分。

在我的博客文章中阅读更多内容 - 希望博客也能得到一些好评: http://healthedev.blogspot.com/2011/12/making-custom-built-applications.html