分层解耦-02.分层解耦(IOC-DI引入)

一.分层解耦

内聚:软件中各个功能模块内部的功能联系,比如service中的EmpService接口的实现类EmpServiceA只用来实现数据的逻辑处理,模块内部功能联系紧密。那么我们就说他是高内聚的。

耦合:衡量软件中各个层/模块之间的依赖、关联的程度。比如在controller层中要调用service层中的方法,就需要引入service层的对象。这样两个层之间就发生了耦合。

而在软件设计中,原则是高内聚低耦合,因此我们要尽量的解除耦合。

解除耦合后,即使我们改变了service层实现类,也不用改变controller层的代码。

二.如何解耦

首先不要new EmpService接口的实现类对象

接着我们准备一个容器,用来存储EmpServiceA的实现类对象。用的话就从容器中拿。如果我们要切换实现类,那么就在容器中查找有无,然后使用。

这就涉及到两个问题:

1.实现类对象如何交给容器来管理。

2.容器怎么样为程序提供所依赖的资源。

使用控制反转和依赖注入。

三.控制反转与依赖注入

相关推荐
掉鱼的猫7 分钟前
Solon 整合 LiteFlow 规则引擎:概念与实战
java·workflow
她说..8 分钟前
Stream API流学习总结
java
橙序员小站17 分钟前
JDK17 前后写法对比:差点没认出是 Java
java·后端
秋千码途17 分钟前
小架构step系列26:Spring提供的validator
java·spring·架构
肖哥弹架构19 分钟前
Spring JDBCTemplate 十大性能优化秘籍:从慢如蜗牛到快如闪电!
java·后端·程序员
苦学编程的谢21 分钟前
MyBatis_3
java·开发语言·后端·mybatis
fouryears_234171 小时前
什么是JSON,如何与Java对象转化
java·spring boot·spring·json
CHEN5_021 小时前
【RocketMQ】一分钟了解RocketMQ
java·rocketmq·java-rocketmq
寒士obj1 小时前
JVM 内存结构
java·开发语言·jvm