IOC:控制反转 全名依赖控制反转是一种为了方便管理 依赖关系而设计的设计模式
DI:依赖注入 IOC容器的功能
依赖关系:
对象与对象之间存在依赖关系,(如一个学生有一个班主任,当我们想了解这个学生的班主任的信息,就可以在这个学生对象中存的班主任的引用 来获取班主任的非私有(not pravite)信息(数据依赖) 或找班主任办事(方法依赖)。)则这个学生依赖与他的班主任。
依赖(关系)控制:
添加或修改对象间的依赖关系 如:
来了一个学生,需要给学生对象添加安排好的班主任的引用,或是学生换班 更改班主任的引用,称为依赖控制。
如果把依赖控制的权利交给具体的对象去实现(具体对象此时参与到业务逻辑中),控制(添加或修改)依赖关系时需要对 这个具体对象的源码进行修改。即耦合性太高。
所以我们需要一种设计出一种 简洁方便的东西(Ioc容器) 来进行 对象间的 依赖(关系)的控制。在业务逻辑上可以无视这种东西,降低耦合性
总结下来就是:把对象间的 控制依赖关系 的权利 交给(反转) IOC容器,让ioc容器来 控制(也叫管理)依赖关系–ioc(控制反转),是种设计模式。(这种设计模式的具体实现不只spring有,很多框架也有)
DI依赖注入:
IOC容器把 依赖对象的引用 赋值(注入)到对象的变量中(注:基本数据类型也视为对象),称为依赖注入(注入方式有 接口注入 构造器注入 set方法注入)(具体用过配置文件xml 或者注解的方式)
IOC与DI:
依赖控制反转 (ioc) 这种设计模式 把控制依赖关系的权力反转给IOC容器。
然后 IOC容器用 依赖注入(DI) 的功能来实现对依赖关系的控制(添加或修改)。
—————————————————————————————菜鸟的第一篇博客,望大佬们指正