文章目录
- 一、设计模式概述
- (一)设计模式是什么
- 1. 设计模式的定义
- 2. 设计模式的组成要素
- 3、常用设计模式一览表
- (二)设计模式的优点(用途)
- ※ 本文小结
一、设计模式概述
(一)设计模式是什么
1. 设计模式的定义
设计模式的一般定义如下:
设计模式(Design Pattern) 是一套被反复使用的、多数人知晓的、经过分类编目的代码设计经验的总结,使用设计模式是为了可以重用代码,让代码更让容易被他人理解并且提高代码的可靠性。
狭义的设计模式 是指 GoF 在 Design Patterns: Elements of Reusable Object-Oriented Software(《设计模式:可复用面向对象软件的基础》)一书中所介绍的23种经典设计模式。
2. 设计模式的组成要素
设计模式一般包括模式名称、问题、目的、解决方案、效果等组成要素,其中关键要素是模式名称、问题、解决方案和效果。
- 模式名称(Pattern Name): 通过一两个词来为模式命名,以便我们更好地理解模式并方便开发人员之间的交流,绝大多数模式都是根据其功能或模式结构来命名的(GoF设计模式中没有一个模式用人名命名)。
- 问题(Problem): 描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因。
- 解决方案(Solution): 描述了一个设计模式的组成部分,以及这些组成部分之间的相互关系、各自的职责和协作方式,通常解决方案通过UML类图和核心代码进行描述。
- 效果(Consequence): 描述了模式的优缺点以及在使用模式时应权衡的问题。
3、常用设计模式一览表
类型 | 模式名称 | 学习难度 | 使用频率 |
---|---|---|---|
(一)创建型模式(5种) | 单例模式 | ★☆☆☆☆ | ★★★★☆ |
简单工厂模式(备注:不在GoF 23种设计模式中) | ★★☆☆☆ | ★★★☆☆ | |
工厂模式 | ★★☆☆☆ | ★★★★★ | |
抽象工厂模式 | ★★★★☆ | ★★★★★ | |
原型模式 | ★★★☆☆ | ★★★☆☆ | |
建造者模式 | ★★★★☆ | ★★☆☆☆ | |
(二)结构型模式(7种) | 适配器模式 | ★★☆☆☆ | ★★★★☆ |
桥接模式 | ★★★☆☆ | ★★★☆☆ | |
组合模式 | ★★★☆☆ | ★★★★☆ | |
装饰模式 | ★★★☆☆ | ★★★☆☆ | |
外观模式 | ★☆☆☆☆ | ★★★★★ | |
享元模式 | ★★★★☆ | ★☆☆☆☆ | |
代理模式 | ★★★☆☆ | ★★★★☆ | |
(三)行为型模式(11种) | 职责链模式 | ★★★☆☆ | ★★☆☆☆ |
命令模式 | ★★★☆☆ | ★★★★☆ | |
解释器模式 | ★★★★☆ | ★☆☆☆☆ | |
迭代器模式 | ★★★☆☆ | ★★★★★ | |
中介者模式 | ★★★☆☆ | ★★☆☆☆ | |
备忘录模式 | ★★☆☆☆ | ★★☆☆☆ | |
观察者模式 | ★★★☆☆ | ★★★★★ | |
状态模式 | ★★★☆☆ | ★★★☆☆ | |
策略模式 | ★☆☆☆☆ | ★★★★☆ | |
模板模式 | ★★☆☆☆ | ★★★☆☆ | |
访问者模式 | ★★★★☆ | ★☆☆☆☆ |
(二)设计模式的优点(用途)
- 提供了一种共享的设计词汇和概念,使开发人员能够更好地沟通和理解彼此的设计意图。
- 提供了经过验证的解决方案,可以提高软件的可维护性、可复用性和灵活性。
- 促进了代码的重用,避免了重复的设计和实现。
- 通过遵循设计模式,可以减少系统中的错误和问题,提高代码质量。
※ 本文小结
参考资料
参考书籍:《设计模式的艺术 / 刘伟著》