提供者模式是IOC的实现吗?如果没有,为什么不呢?
(阅读关于ioc的马丁福勒斯文章)
在我看来,是的,提供者模式是一种控制反转的形式.
我的理由是什么?
在它的核心IoC是一个非常通用的概念,以至于Martin Fowler谈论从命令行读取用户输入作为IoC的一种形式.
使用Provider模型时,当提供程序框架决定在调用给定方法时将使用哪个提供程序时,会发生反转.例如,当您调用Membership.GetUser时,您的代码会将对要使用的成员资格提供程序的控制委派给提供程序框架.
正如Fowler所说,"控制反转是框架的一个共同特征",如果你考虑它,许多模式都与IoC有关(例如战略模式).我甚至可以说即使是多态性也是IoC的一种形式(我很乐意听到反驳论点).