副标题 / 摘要
内聚关注“模块内部是否紧密相关”,耦合关注“模块之间是否依赖过多”。本文给出区别与改进方法。
目标读者
- 需要评估设计质量的工程师
- 负责重构与模块划分的开发者
- 做架构与代码评审的团队
背景 / 动机
很多系统难维护的原因不是“功能太多”,而是模块内聚低、耦合高。
理解内聚与耦合,是设计优化的基础。
核心概念
- 内聚(Cohesion):模块内部的相关性
- 耦合(Coupling):模块之间的依赖程度
- 高内聚、低耦合:可维护性最佳
实践指南 / 步骤
- 识别“职责过多”的模块
- 拆分低内聚模块
- 减少跨模块直接依赖
- 用接口隔离依赖
- 引入依赖注入
可运行示例
# 低内聚示例:一个类做太多事
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
解释与原理
内聚高意味着模块职责单一、变化集中;
耦合低意味着模块之间依赖少、替换成本低。
常见问题与注意事项
模块越小内聚就越高吗?
不一定,小但职责混杂仍然低内聚。完全无耦合可能吗?
不可能,关键是控制依赖方向与数量。怎么衡量?
看模块修改是否牵连多处。
最佳实践与建议
- 一个模块只解决一个问题
- 把依赖集中到边界层
- 用接口隔离变化
小结 / 结论
内聚与耦合是判断设计质量的核心指标。
高内聚、低耦合是长期可维护系统的基础。
参考与延伸阅读
- Clean Code
- Design Principles and Design Patterns
元信息
- 阅读时长:6~8 分钟
- 标签:内聚、耦合、设计
- SEO 关键词:Cohesion, Coupling
- 元描述:解释内聚与耦合的差异并给出改进方法。
行动号召(CTA)
选一个“改一次坏一片”的模块,看看是不是低内聚或高耦合。