基础内容

定义:耦合性是指模块之间的依赖关系,内聚性是指模块内部各部分的紧密程度

关键概念

  • 低耦合(Low Coupling):模块之间的依赖关系尽可能少
    • 详细说明
      • 模块独立性:低耦合意味着一个模块的变动对其他模块的影响尽可能小,每个模块可以独立地进行开发和修改
      • 减少依赖:尽量减少模块之间的依赖关系,使得系统更易于维护和扩展
    • 实现技术
      • 接口与抽象
        • 通过接口和抽象类进行模块之间的通信,避免直接依赖具体实现
        • 比如:使用依赖注入(Dependency Injection)将具体实现注入到接口中
      • 事件驱动架构
        • 通过事件总线或消息队列进行模块间的通信,避免模块之间的直接依赖
        • 工具:RabbitMQ, Apache Kafka
      • 服务发现
        • 在微服务架构中,通过服务发现机制减少服务之间的紧耦合
        • 工具:Consul, Eureka
  • 高内聚(High Cohesion):模块内部各部分的紧密相关性高
    • 详细说明
      • 职责单一:模块内的所有功能都紧密相关,共同完成一个相对独立的任务
      • 增强可维护性:模块职责明确,代码结构清晰,更容易理解和维护
      • 提高复用性:由于高内聚模块的功能单一且明确,这样的模块更容易被复用
    • 实现技术
      • 面向对象设计
        • 通过类和对象进行封装,将相关的功能和数据封装到一个类中,提高内聚性。
        • 比如:一个订单处理类包含所有与订单处理相关的方法和属性
      • 模块化设计
        • 将系统划分为多个独立的模块,每个模块内的功能都高度相关
        • 比如:一个电商系统中,将用户管理、订单管理、商品管理等功能分别封装到不同的模块中
      • 单一职责原则
        • 每个类和模块只负责一个职责,从而提高内聚性
        • 示例:一个类只负责日志记录,不负责其他任务