目录
分层解耦
如何解除耦合
控制反转(IOC)
依赖注入(DI)
Bean对象
分层解耦
- 内聚:软件中各个功能模块内部的功能联系
- 耦合:衡量软件中各个层/模块之间的依赖、关联程度
- 软件设计原则:高内聚低耦合
在三层架构那篇文章中写文章-CSDN创作中心
Service层和Controller层,Service层和Dao层都存在耦合的情况,具体代码片段如下:
具体来说就是Service层中创建了一个Dao层中的实现类的对象,假如说,Dao层中实现类需要改变名称,那么使用该类创建对象的类也需要进行相应更改。同理,Controller层中也调用了Service层中的实现类来创建对象,也会产生相同的问题。这不符合软件设计中低耦合的原则。
如何解除耦合
在上述分析也可以知道,产生耦合的原因是,一个类中调用了另一个类来创建对象,即对象的组合,那么我们就可以使用一个专门的容器来存放所需要的对象,需要调用对象的类就可以直接在容器中进行搜索。那么为了实现上述两个过程(将对象放入容器,将对象从容器中拿到类中使用),就需要引入控制反转和依赖注入这两个概念。
- 控制反转实现将对象放入容器(IOC容器或者Spring容器)中
- 依赖注入实现将对象放入对应类中
- bean就是容器中创建的对象
控制反转(IOC)
- Inversion Of Control。简称IOC。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转
依赖注入(DI)
- Dependency Injection。简称DI。容器为应用程序提供运行时,所依赖的资源,称之为依赖注入
Bean对象
- IOC容器中创建、管理的对象,称之为bean