设计模式对于开发者来说是一项软技能,如果熟悉各类设计模式,并能够在项目中进行合理运用,那么对于我们编程技能的提升无疑是很大的。并且,当我们阅读其他开发者所写的优秀开源代码时,他们可能就在代码中运用了设计模式,如果我们不懂设计模式,那对阅读源码也会造成一定的阻碍。
我之前断断续续地学过一些设计模式,但是也不成体系,也没有写文章记录学习过程,后来也忘的差不多了。正值秋招找工作的时机,在面试的过程中也被问到了很多设计模式的问题,大多只回答出皮毛,不能给面试官更好的印象。现在就趁这个机会,结合一些资料,好好将设计模式整体回顾一下。并写文章进行记录,以防遗忘。
因为面试的岗位是 Android 开发,在面试中有关设计模式的问题通常也会和 Android 进行结合,比如在「Android中用到了哪些设计模式呢?可以举例进行说明吗?」等等。所以在介绍了某一个设计模式的特点和代码实现后,还会列出这个设计模式在 Android 中的一些应用示例。
并且,由于这个系列写在面试之前,时间可能不是特别充裕,因此暂时会先选择一些常见的,应用较广的设计模式进行回顾,剩下一些设计模式,后续都会进行介绍。
初步拟定这个系列包含:
- 设计模式概述与原则
- 工厂方法模式
- 抽象工厂模式
- 建造者模式
- 单例模式
- 适配器模式
- 装饰者模式
- 代理模式
- 责任链模式
- 观察者模式
- 策略模式
暂时就先写这 10 个模式吧,话不多说,开始复习。