副标题 / 摘要

内聚关注“模块内部是否紧密相关”,耦合关注“模块之间是否依赖过多”。本文给出区别与改进方法。

目标读者

  • 需要评估设计质量的工程师
  • 负责重构与模块划分的开发者
  • 做架构与代码评审的团队

背景 / 动机

很多系统难维护的原因不是“功能太多”,而是模块内聚低、耦合高。
理解内聚与耦合,是设计优化的基础。

核心概念

  • 内聚(Cohesion):模块内部的相关性
  • 耦合(Coupling):模块之间的依赖程度
  • 高内聚、低耦合:可维护性最佳

实践指南 / 步骤

  1. 识别“职责过多”的模块
  2. 拆分低内聚模块
  3. 减少跨模块直接依赖
  4. 用接口隔离依赖
  5. 引入依赖注入

可运行示例

# 低内聚示例:一个类做太多事
class OrderManager:
    def calculate(self):
        pass

    def save(self):
        pass

    def send_email(self):
        pass

# 改进:拆分职责
class OrderCalculator:
    def calculate(self):
        pass

class OrderRepository:
    def save(self):
        pass

class OrderNotifier:
    def send_email(self):
        pass

解释与原理

内聚高意味着模块职责单一、变化集中;
耦合低意味着模块之间依赖少、替换成本低。

常见问题与注意事项

  1. 模块越小内聚就越高吗?
    不一定,小但职责混杂仍然低内聚。

  2. 完全无耦合可能吗?
    不可能,关键是控制依赖方向与数量。

  3. 怎么衡量?
    看模块修改是否牵连多处。

最佳实践与建议

  • 一个模块只解决一个问题
  • 把依赖集中到边界层
  • 用接口隔离变化

小结 / 结论

内聚与耦合是判断设计质量的核心指标。
高内聚、低耦合是长期可维护系统的基础。

参考与延伸阅读

  • Clean Code
  • Design Principles and Design Patterns

元信息

  • 阅读时长:6~8 分钟
  • 标签:内聚、耦合、设计
  • SEO 关键词:Cohesion, Coupling
  • 元描述:解释内聚与耦合的差异并给出改进方法。

行动号召(CTA)

选一个“改一次坏一片”的模块,看看是不是低内聚或高耦合。