什么是IOC?
顾名思义,IOC(Inversion of Control)——控制反转。
传统方式中,我们对于对象的管理(新建、引用等等),是通过程序控制,当不在使用该对象时,由GC完成回收。
而现在IOC为我们提供了这样的一种机制——一切对象的实例有IOC容器负责创建,创建的条件就是配置文件。
可以这样说:比如,我想要一个鸡蛋,传统方式是我自己寻找到卖家,然后完成交易。而IOC则相当于一个供应商,我们在家门口摆放一个篮子,写着需要鸡蛋,IOC容器自动的将我们需要的物品推送给我们。
DI
依赖注入。
很多时候,a对象存在着b对象的引用,传统方式——我们自己构建b对象,再完成a对象的构造。
而DI是IOC实现的一个重要功能,由容器通过配置文件,知道了依赖关系。那么在我们需要a对象时,容器发现a依赖于b,那么,容器将自动完成依赖的注入。
意义
简化了开发,将我们从复杂的耦合关系中解放出来,并使对象的管理更加可靠,简单。