设计模式源起现实生活,譬如建筑设计师想要建造一栋建筑,他们会参照以往的图纸或者建造方法来绘制新建筑的图纸。将建筑师们所参照的这些图纸以及设计归纳总结乃至升华出来的一种针对某一类问题解决方案的设计思想与理念就是我们熟知的设计模式。
软件开发中的设计模式则是一套针对某一问题的一套设计良好的解决方案,是前辈们的心血与结晶。其优点有三:
-
可以大大缩短开发时间
- 经过良好的设计以及实践检验
- 是一套标准的解决方法
- 针对类似的问题行之有效
-
减少开发成本
- 提高代码可复用性
- 提高健壮性
- 提高可维护性
-
提高可交流性
- 经过良好定义,易于理解和调试
- 团队新成员更容易理解代码结构及上手
根据设计意图分为Creational(建造型)、Structral(结构型)、Behavioral(行为型)三种。使用设计模式的精髓在于学习与借鉴而不是一味的照搬,只有真正理解其设计意图,进而融汇贯通,方为真正领悟。