一.什么是设计模式
《设计模式:可复用面向对象软件的基础》中对设计模式的解释为是对被用来在特定场景下解决一般设计问题的类和互相通讯的的对象的描述。
一般而言,一个设计模式有四个基本要素:
- 模式名字:一个助记名,用一两个词来描述模式的问题,解决方案和效果
- 问题:描述了应该在何时使用模式
- 解决方案:描述了设计的组成成分
- 效果:描述了模式应用的效果及使用模式应权衡的问题
归根结底呢设计模式是指:在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案。
二. 设计模式的分类
在GoF 《设计模式:可复用面向对象软件的基础》中有23中设计模式,对于这23中设计模式,GoF把他们分为了三类
- 创建星模式:抽象了对象实例化过程,用来帮助创建对象的实例
- 结构型模式:描述如何组合类和对象以获得更大的结构
- 行为型模式:描述算法和对象间职责的分配
三.为什么学习设计模式
- 学习设计模式是个人技术能力提高的捷径。设计模式是很多前辈经验的积累,大都是一些相对优秀的解决方案,很多都是典型的,有代表性的问题。
- 不用重复发明轮子。设计模式是解决某些特定问题的解决方案。当我们在次面对这些问题的时候,就不用自己重头来解决这些问题,复用这些方案即可。