设计模式的一般定义如下:
设计模式(Design Pattern) 是一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验的总结,使用设计模式是为了可以重用代码,让代码更让容易被他人理解并且提高代码的可靠性。
狭义的设计模式 是指 GoF 在 Design Patterns: Elements of Reusable Object-Oriented Software(《设计模式:可复用面向对象软件的基础》)一书中所介绍的23种经典设计模式。
设计模式一般包括模式名称、问题、目的、解决方案、效果等组成要素,其中关键要素是模式名称、问题、解决方案和效果。
| 类型 | 模式名称 | 学习难度 | 使用频率 |
|---|---|---|---|
| (一)创建型模式(5种) | 单例模式 | ★☆☆☆☆ | ★★★★☆ |
| 简单工厂模式(备注:不在GoF 23种设计模式中) | ★★☆☆☆ | ★★★☆☆ | |
| 工厂模式 | ★★☆☆☆ | ★★★★★ | |
| 抽象工厂模式 | ★★★★☆ | ★★★★★ | |
| 原型模式 | ★★★☆☆ | ★★★☆☆ | |
| 建造者模式 | ★★★★☆ | ★★☆☆☆ | |
| (二)结构型模式(7种) | 适配器模式 | ★★☆☆☆ | ★★★★☆ |
| 桥接模式 | ★★★☆☆ | ★★★☆☆ | |
| 组合模式 | ★★★☆☆ | ★★★★☆ | |
| 装饰模式 | ★★★☆☆ | ★★★☆☆ | |
| 外观模式 | ★☆☆☆☆ | ★★★★★ | |
| 享元模式 | ★★★★☆ | ★☆☆☆☆ | |
| 代理模式 | ★★★☆☆ | ★★★★☆ | |
| (三)行为型模式(11种) | 职责链模式 | ★★★☆☆ | ★★☆☆☆ |
| 命令模式 | ★★★☆☆ | ★★★★☆ | |
| 解释器模式 | ★★★★☆ | ★☆☆☆☆ | |
| 迭代器模式 | ★★★☆☆ | ★★★★★ | |
| 中介者模式 | ★★★☆☆ | ★★☆☆☆ | |
| 备忘录模式 | ★★☆☆☆ | ★★☆☆☆ | |
| 观察者模式 | ★★★☆☆ | ★★★★★ | |
| 状态模式 | ★★★☆☆ | ★★★☆☆ | |
| 策略模式 | ★☆☆☆☆ | ★★★★☆ | |
| 模板模式 | ★★☆☆☆ | ★★★☆☆ | |
| 访问者模式 | ★★★★☆ | ★☆☆☆☆ |
参考资料
参考书籍:《设计模式的艺术 / 刘伟著》
参考网站:设计模式 | 菜鸟教程