My App

设计模式

GoF 23 种经典设计模式总览与学习路线

什么是设计模式

设计模式是前人在大量实践中总结出的可复用的解决方案模板。它不是可以直接复制粘贴的代码,而是解决特定问题的通用思路

1995 年,四位作者(被称为 Gang of Four,简称 GoF)在《Design Patterns: Elements of Reusable Object-Oriented Software》一书中系统整理了 23 种设计模式,按目的分为三大类:

三大分类

分类关注点包含模式
创建型(Creational)对象怎么创建单例、工厂方法、抽象工厂、建造者、原型
结构型(Structural)对象怎么组合适配器、装饰器、代理、外观、桥接、组合、享元
行为型(Behavioral)对象怎么交互观察者、策略、模版方法、责任链、命令、状态、迭代器、备忘录、中介者、访问者、解释器

六大设计原则(SOLID + 迪米特)

设计模式背后的指导思想是这些原则:

原则一句话解释
单一职责原则(SRP)一个类只做一件事
开闭原则(OCP)对扩展开放,对修改关闭
里氏替换原则(LSP)子类能无缝替换父类
接口隔离原则(ISP)接口要小而专,不要大而全
依赖倒置原则(DIP)依赖抽象,不要依赖具体实现
迪米特法则(LoD)只和直接朋友通信,不和陌生人说话

学习建议

不需要一次学完 23 种。按实用频率,推荐的学习顺序:

  1. 高频必会:单例、工厂方法、策略、观察者、代理、装饰器、模版方法
  2. 进阶常用:建造者、适配器、外观、责任链、命令、状态
  3. 了解即可:抽象工厂、原型、桥接、组合、享元、迭代器、备忘录、中介者、访问者、解释器

On this page