阅读关于3个惯用语之间区别的许多帖子。但变得更加困惑,然后我碰到这篇文章: http://martinfowler.com/articles/injection.html验证我了解IoC,Ioc容器,DI和服务定位器之间的区别
只是想看看我是否得到这个权利。如果我错了,请纠正我。 请通知我修正和补充:
IOC-是脱钩它使用一个服务的实现应用程序的概念。该应用程序包含Iservice的参考资料,并且不需要实例化具体服务。
有至少两个才达到这样的方式:
DI - 混凝土业务注入的构造函数PARAM /扔一个setter /扔接口注入(什么后者意味着什么呢?)
ServiceLocator - 是一个知道应用程序可能需要的所有具体服务的组件。该应用程序明确要求定位器的具体服务。
* IoC容器实际上是控件的工厂(“提供者”)。
我对文章中的“何时偏好(1)或(2)”部分有些困惑。 有人可以从他自己的经验中看出一个外行人的话吗?
“服务定位器由于其更直接的行为而具有轻微的优势,但如果要构建在多个应用程序中使用的类,则依赖注入是更好的选择。” - >定位器如何更直接?因为它明确使用方法调用?有多个应用程序时使用DI有什么好处?
也许你可以突出文章那部分中对你感到困惑的特定想法? – prasopes
“服务定位器由于其更直接的行为而具有轻微的优势,但如果您要构建在多个应用程序中使用的类,则依赖注入是更好的选择。” - >定位器如何更直接?因为它明确使用方法调用?有多个应用程序时使用DI有什么好处? –
相关:http://stackoverflow.com/questions/6766056/dip-vs-di-vs-ioc –