1 概念
1.1 控制反转(Inversion of Control,缩写为IoC)
是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。[百度百科]
1.2 耦合
在软件工程中,耦合指的就是就是对象之间的依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个 准则就是高内聚低耦合。
1.3 依赖注入(Dependency Injection,简称DI)
它是 spring 框架 IoC 的具体实现[让bean与bean之间以配置文件组织在一起,而不是以硬编码的方式耦合在一起]。我们的程序在编写时,通过控制反转,把对象的创建交给了 spring,但是代码中不可能出现没有依赖的情况。 IoC 解耦只是降低他们的依赖关系,但不会消除。例如:我们的业务层仍会调用持久层的方法。 那这种业务层和持久层的依赖关系,在使用 spring 之后,就让 spring 来维护了。 简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取。
2 使用Spring的IoC解决程序耦合
2.1 传统程序存在的问题
我们在开发中,有些依赖关系是必须的,有些依赖关系可以通过优化代码来解除的。
代码示例: