1.摘要
一款软件产品好不好用, 除了拥有丰富的功能和人性化的界面设计之外, 还有其深厚的底层基础, 而设计模式和算法是构建这个底层基础的基石。好的设计模式能够让产品开发快速迭代且稳定可靠, 迅速抢占市场先机;而好的算法能够让产品具有核心价值, 例如字节跳动公司旗下的抖音、今日头条等众多产品以算法起家, 能够智能根据用户喜好精准推送其感兴趣的内容。在本章节中, 将对软件设计模式的相关知识进行总结, 为后面的学习打下基础。
2.设计模式简介
软件设计模式是指在软件开发过程中, 经过验证的, 用于解决在特定环境中重复出现的特定问题解决方案。可以将设计模式想象成根据需求进行调整的预制蓝图, 可用于解决代码中反复出现的设计问题。
设计模式与方法或库的使用方式不同, 很难直接在自己的程序中套用某个设计模式。模式并不是一段特定的代码, 而是解决特定问题的一般性概念。每一个程序员都可以根据模式来实现符合自己程序实际所需的解决方案。
2.1 为什么需要设计模式
优秀的开发者身上总蕴藏着一股力量, 阅读他们写的代码的最直观感受就是代码可重用性高、可读性强、灵活性好、可维护性强等特点。这些优秀的开发者实际上遵循的是他们自己的一套不断完善和总结的解决方案, 而设计模式实际上是根据以前的实践和经验记录要采用的解决方案, 在设计模式的实现过程中, 需要使用多个软件组件共同实现某些功能。因此, 设计模式加快了涉及多个组件的开发过程。开发者可以在对应解决方案的具体应用中使用自己熟悉的编程语言。
设计模式提供了经过验证的开发范例, 有助于节省时间, 而不必在每次出现问题时都重新创建设计模式。设计模式使程序设计更加标准化、代码编写更加工程化,从而提高软件的开发效率, 缩短软件的开发周期。
2.2 设计模式的发明者
在1994年, Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四人合著出版了<<设计模式-可复用面向对象软件的基础>>一书, 将设计模式的概念应用到程序开发领域中, 该书提供了23个模式来解决面向对象程序设计中的各种问题, 很快便成为了畅销书。由于书名太长, 人们将其简称为”四人组(Gang of Four, GoF)的书”,并且很快进一步简化为”GoF的书”。