1 简介

软件设计模式(software design pattern),指在软件开发过程中经过验证的、用于解决特定环境中重复出现的特定问题的方案。
在《设计模式:可复用面向对象软件的基础》书中首次提出23种设计模式,可以分为三类设计模式:创建型、结构型、行为型。随着发展,后续还出现了空对象模式、规格模式等。

2 需求

  • 提高开发速度。提供经过验证的开发范例,有助于节省时间和避免重新创建设计模式
  • 提高开发者的思维能力、编程能力、设计能力。设计模式可以使程序设计更加标准化、工程化,从而提高开发效率、缩短开发周期
  • 提高可重用性、可读性、可靠性、灵活性、可维护性。设计模式可以在多种情况下对应套用,让系统在后期更容易维护和扩展

3 使用事项

  • 需求驱动
  • 充分了解所使用的开发语言
  • 实战中领悟设计模式
  • 避免过度设计

4 六大原则

  • 开闭原则:开放扩展,关闭修改。程序需要扩展时,禁止修改原有代码,需要使用接口和抽象类、实现热插拔效果
  • 里氏替换原则:继承复用的基石,只有当子类可以替换基类且软件组件的功能不受影响时,基类才能真正被复用,使子类能在基类的基础上增加新行为
  • 依赖倒转原则:具体内容是针对接口编程,依赖于抽象,不依赖实体
  • 接口隔离原则:使用多个隔离接口比使用单个隔离接口好,可以降低耦合度、减少依赖
  • 迪米特法则:实体应当尽量少与其它实体之间发生相互作用,使用模块相对独立
  • 合成复用原则:通过关联关系(包括组合关系、聚合关系)在新对象使用一些已有对象,组合成新对象,即新对象通过委托已有对象实现复制。