设计模式主要解决的是重复造轮子的问题,主要研究的是"变"与"不变"的问题,将"不变"的部分沉淀下来,对于"变"的部分抽象成一种统一的格式,进而增强软件的兼容性和可拓展性,就像堆积木一样,只提供积木块,而做成什么什么样的,则看自己的想法了。
评价一个系统的好坏不仅仅在于其功能有多强大,更在于其设计理念,各个模块职责分明,对外扩展性强,功能变动或新增异常简单,就是设计模式的功劳。设计模式不局限于编程语言,它是一种思想,可以合理运用在任何地方。计算机结构的发展就是设计模式的一个经典案例,由最初的一体化设备,到现在的USB接口,就是设计模式的一个落地实现,实现了外设的任意更换与更新,只需要遵循统一的USB标准即可,而不需要关注各种外设内部的具体实现。
计算机目前的USB设计抽象后如下图所示:
这种设计使计算机与外设彻底解耦,这就是设计模式中的"策略模式",而计算机通过转换器去兼容连接其他接口的设计,就是设计模式中"适配器模式"的具体体现。设计模式共有23种,后续将一一讲解。