海树

我心有猛虎 细嗅蔷薇香

Owen Lee's avatar Owen Lee

学学设计模式(0)写在专题开始之前

设计模式对于开发者来说是一项软技能,如果熟悉各类设计模式,并能够在项目中进行合理运用,那么对于我们编程技能的提升无疑是很大的。并且,当我们阅读其他开发者所写的优秀开源代码时,他们可能就在代码中运用了设计模式,如果我们不懂设计模式,那对阅读源码也会造成一定的阻碍。

我之前断断续续地学过一些设计模式,但是也不成体系,也没有写文章记录学习过程,后来也忘的差不多了。正值秋招找工作的时机,在面试的过程中也被问到了很多设计模式的问题,大多只回答出皮毛,不能给面试官更好的印象。现在就趁这个机会,结合一些资料,好好将设计模式整体回顾一下。并写文章进行记录,以防遗忘。

因为面试的岗位是 Android 开发,在面试中有关设计模式的问题通常也会和 Android 进行结合,比如在「Android中用到了哪些设计模式呢?可以举例进行说明吗?」等等。所以在介绍了某一个设计模式的特点和代码实现后,还会列出这个设计模式在 Android 中的一些应用示例。

并且,由于这个系列写在面试之前,时间可能不是特别充裕,因此暂时会先选择一些常见的,应用较广的设计模式进行回顾,剩下一些设计模式,后续都会进行介绍。

初步拟定这个系列包含:

  1. 设计模式概述与原则
  2. 工厂方法模式
  3. 抽象工厂模式
  4. 建造者模式
  5. 单例模式
  6. 适配器模式
  7. 装饰者模式
  8. 代理模式
  9. 责任链模式
  10. 观察者模式
  11. 策略模式

暂时就先写这 10 个模式吧,话不多说,开始复习。