加载中...
高内聚低耦合是软件设计的经典目标:内聚衡量模块内部各元素关联的紧密程度,耦合衡量模块之间相互依赖的程度。该对概念由拉里·康斯坦丁等人在结构化设计中系统提出,至今仍是评价架构与代码质量的通用标尺。

| 中文名 | 高内聚低耦合 |
| 英文名 | High Cohesion, Low Coupling |
| 提出者 | 拉里·康斯坦丁等 |
| 源流 | 结构化设计(1974 年论文) |
| 相关原则 | 单一职责、康威定律、DDD |
高内聚低耦合是软件设计中衡量模块划分质量的一对核心概念与追求目标。内聚(Cohesion)指一个模块内部各元素为完成同一职责而彼此关联的紧密程度;耦合(Coupling)指模块与模块之间相互依赖、相互影响的程度。好的设计追求模块内部高度相关(高内聚),模块之间依赖尽量少且弱(低耦合)。
这对概念源于二十世纪六七十年代的结构化设计运动,由美国软件工程先驱拉里·康斯坦丁(Larry Constantine)提出,并在 1974 年他与格伦福德·迈尔斯(Glenford Myers)、韦恩·史蒂文斯(Wayne Stevens)合著的论文中系统阐述。此后从面向对象设计、SOLID 原则,到微服务的服务边界划分、领域驱动设计的限界上下文,几乎所有模块化理论都可以视为这对概念在不同尺度上的展开。
高内聚低耦合贯穿各个设计层级:函数与类的职责划分、包与模块的依赖方向、微服务的拆分边界、团队与系统的对应关系(康威定律)。工程上可借助依赖分析工具度量扇入扇出、循环依赖和不稳定度,把抽象目标变成可检查的指标。
问:耦合能降到零吗?答:不能也不必要。模块之间必须协作才能构成系统,目标是让依赖显式、单向、面向稳定的抽象接口,而不是消灭依赖。
问:微服务拆得越细,耦合就越低吗?答:未必。把本应内聚的逻辑拆到多个服务里,会把进程内的低成本调用变成跨网络的分布式耦合,反而更脆弱;拆分应以业务边界的内聚性为准。

| 中文名 | 高内聚低耦合 |
| 英文名 | High Cohesion, Low Coupling |
| 提出者 | 拉里·康斯坦丁等 |
| 源流 | 结构化设计(1974 年论文) |
| 相关原则 | 单一职责、康威定律、DDD |
登录 后参与讨论
暂无讨论,来发表第一条评论吧