今天看见了一篇《依赖注入和控制反转的理解,写的太好了》,按照我的看法,这是中文学院的文科生写的东西,或者说,不懂IoC、依赖抽象原则、框架的人在说文解字。因此,要求同学们针对该文章,结合抛弃依赖倒置原则 ,写学习笔记,题目“认识IoC、DI和DIP”。
通过God创建对象,认清Spring的DI仅仅是工具箱,不是框架!Spring与IoC一点关系都没有。不要相信一些公司的网站的宣传文字,也不要相信Martin Fowler的文章Inversion of Control Containers and the Dependency Injection pattern中的一些说法。
另外:可参考(注意:不是要你从中知道什么是IoC、DI和DIP,上课讲的你不知道?你要说明该文章的错误)
轻松学,浅析依赖倒置(DIP)、控制反转(IOC)和依赖注入(DI)
---------------------------------------------------------------------------------------------------------------
下面的文章,错误的要点在于:
1)在Spring与IoC一点关系都没有的情况下,强行解释两种的关系。错误来源于Martin Fowler的著名文章Inversion of Control Containers and the Dependency Injection pattern。
2)“传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象”。很多这样的话,都是看见来不错,但是经不起推敲的。任何Client依赖B,如果改为Client依赖A,再由A调用B,是不是也称为IoC??,例如“传统应用程序是由我们自己在Client中主动控制去直接获取依赖B,也就是正转;而反转则是由A来帮忙创建及注入