解耦为何如此重要

解耦是保证代码的松耦合,高内聚。防止代码质量腐化到不可救药地步的有效手段。

代码”高内聚,松耦合“也就意味着,代码结构清晰,分层和模块化合理,依赖关系简单,模块或类之间的耦合小,代码质量自然就高。

代码是否需要解耦

判断代码是否符合”高内聚,松耦合”,可以从如下方法判断。

  1. 看修改代码会不会牵一发而动全身。
  2. 把模块与模块之间,类与类之间的依赖关系画出来。根据依赖关系图的复杂性判断是否需要解耦重构。

如何给代码解耦

1.封装与抽象

封装和抽象可以有效地隐藏实现的复杂性,隔离实现的易变性,给依赖的模块提供稳定且易用的抽象接口。

2.中间层

引入中间层能简化模块或类之间的依赖关系。

image-20210220213635763

我们在进行重构的时候,引入中间层可以起到过渡的作用,能够让开发和重构同步进行,不互相干扰。

分四个阶段完成接口的修改:

  1. 引入一个中间层,包裹老的接口,提供新的接口定义。
  2. 新开发的代码依赖中间层提供的新接口。
  3. 将依赖老接口的代码改为调用新接口。
  4. 确保所有代码都调用新接口之后,删除掉老的接口。

3.模块化

模块化是构建复杂系统常用的手段。

将大而复杂的系统拆分成各个独立的模块,让不同人负责不同的模块。

每个模块之间耦合很小,每个小团队聚集于一个独立的高内聚模块来开发。

最终像搭积木一样将各个模块组装起来,构建成一个超级复杂的系统。

4.设计思想和原则

  1. 单一职责原则
  2. 基于接口而非实现编程
  3. 依赖注入
  4. 多用组合少用继承
  5. 迪米特法则

关于我

我的博客:https://yezihack.github.io

欢迎关注我的微信公众号【空树之空】,共同学习,一起进步~ 空树之空