1 简介
软件设计模式(software design pattern),指在软件开发过程中经过验证的、用于解决特定环境中重复出现的特定问题的方案。
在《设计模式:可复用面向对象软件的基础》书中首次提出23种设计模式,可以分为三类设计模式:创建型、结构型、行为型。随着发展,后续还出现了空对象模式、规格模式等。
2 需求
- 提高开发速度。提供经过验证的开发范例,有助于节省时间和避免重新创建设计模式
- 提高开发者的思维能力、编程能力、设计能力。设计模式可以使程序设计更加标准化、工程化,从而提高开发效率、缩短开发周期
- 提高可重用性、可读性、可靠性、灵活性、可维护性。设计模式可以在多种情况下对应套用,让系统在后期更容易维护和扩展
3 使用事项
- 需求驱动
- 充分了解所使用的开发语言
- 实战中领悟设计模式
- 避免过度设计
4 六大原则
- 开闭原则:开放扩展,关闭修改。程序需要扩展时,禁止修改原有代码,需要使用接口和抽象类、实现热插拔效果
- 里氏替换原则:继承复用的基石,只有当子类可以替换基类且软件组件的功能不受影响时,基类才能真正被复用,使子类能在基类的基础上增加新行为
- 依赖倒转原则:具体内容是针对接口编程,依赖于抽象,不依赖实体
- 接口隔离原则:使用多个隔离接口比使用单个隔离接口好,可以降低耦合度、减少依赖
- 迪米特法则:实体应当尽量少与其它实体之间发生相互作用,使用模块相对独立
- 合成复用原则:通过关联关系(包括组合关系、聚合关系)在新对象使用一些已有对象,组合成新对象,即新对象通过委托已有对象实现复制。