分层解耦-IOC&DI引入

目录

分层解耦

如何解除耦合

控制反转(IOC)

依赖注入(DI)

Bean对象

分层解耦

  • 内聚:软件中各个功能模块内部的功能联系
  • 耦合:衡量软件中各个层/模块之间的依赖、关联程度
  • 软件设计原则:高内聚低耦合

在三层架构那篇文章中写文章-CSDN创作中心

 Service层和Controller层,Service层和Dao层都存在耦合的情况,具体代码片段如下:

分层解耦-IOC&DI引入_第1张图片

 分层解耦-IOC&DI引入_第2张图片

具体来说就是Service层中创建了一个Dao层中的实现类的对象,假如说,Dao层中实现类需要改变名称,那么使用该类创建对象的类也需要进行相应更改。同理,Controller层中也调用了Service层中的实现类来创建对象,也会产生相同的问题。这不符合软件设计中低耦合的原则。

如何解除耦合

在上述分析也可以知道,产生耦合的原因是,一个类中调用了另一个类来创建对象,即对象的组合,那么我们就可以使用一个专门的容器来存放所需要的对象,需要调用对象的类就可以直接在容器中进行搜索。那么为了实现上述两个过程(将对象放入容器,将对象从容器中拿到类中使用),就需要引入控制反转和依赖注入这两个概念。

  • 控制反转实现将对象放入容器(IOC容器或者Spring容器)中
  • 依赖注入实现将对象放入对应类中
  • bean就是容器中创建的对象

控制反转(IOC)

  • Inversion Of Control。简称IOC。对象的创建控制权由程序自身转移到外部(容器),这种思想称为控制反转

依赖注入(DI)

  • Dependency Injection。简称DI。容器为应用程序提供运行时,所依赖的资源,称之为依赖注入

Bean对象

  • IOC容器中创建、管理的对象,称之为bean

你可能感兴趣的:(Java,Web学习跟踪笔记,java,开发语言)