前言
最近review公司的代码,发现代码耦合程度特别高,修改一处,不知不觉就把其他地方影响到了,这就让我思考该如何让我们写的代码足够内聚,减少耦合呢?
"高内聚、松耦合"是一个非常重要的设计思想,能够有效地提高代码的可读性和可维护性,缩小功能改动导致的代码改动范围。它可以用来指导不同粒度代码的设计与开发,比如系统、模块、类,甚至是函数,也可以应用到不同的开发场景中,比如微服务、框架、组件、类库等。本文我们来探讨下如何让我们的应用做到高内聚、低耦合。
什么是高内聚?
首先我们将目光投射到内聚上,通常我们的代码的内聚归为7类,如下图所示,内聚性从高到低。
- 功能内聚
将相同功能放到一个类或者模块中,内聚程度最高。
- 顺序内聚
如果一个功能的输出是另外一个功能的输入,这种存在顺序依赖关系的,我们将他们归到一个模块中叫做顺序内聚。
- 通信内聚
如果功能点使用相同输入或输出数据,我们将他们内聚到一个模块中,叫做通信内聚。
- 过程内聚
如果不同的功能是由同一个控制流支配的,我们称作过程内聚。
- 时间内聚
不同的功能在