什么是设计模式?

设计模式是一套理论, 由软件界先辈们总结出的一套可以反复使用的经验, 可以帮助开发人员降低代码耦合度、提高代码的重用性、扩展性和系统可维护性,以及巧妙解决一系列逻辑复杂的问题(运用套路)。然而需要注意的是,过度使用设计模式也可能会导致代码过于复杂和晦涩,因此在实际开发中需要根据具体情况进行选择和应用。

四人组(Gang of Four),简称GoF 图片经过AI修复

左到右依次是:Ralph Johnson,Erich Gamma,Richard Helm,John Vlissides。

1995年,艾瑞克·伽马(Erich Gamma)、拉尔夫·约翰森(Ralph Johnson)、理査德·海尔姆(Richard Helm)、约翰·威利斯迪斯(John Vlissides)等4位作者合作出版了《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书,在本教程中收录了 23 个设计模式,这是设计模式领域里程碑的事件,导致了软件设计模式的突破。这 4 位作者在软件开发领域里也以他们的“四人组”(Gang of Four,GoF)匿名著称。

GoF将模式的概念引入软件工程领域,这标志着软件模式的诞生。软件模式(Software Patterns)是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件开发生命周期的每一个阶段都存在着一些被认同的模式。软件模式与具体的应用领域无关,也就是说无论你从事的是移动应用开发、桌面应用开发、Web应用开发还是嵌入式软件的开发,都可以使用软件模式。无论你是使用Java、C#、Objective-C、VB.net、Smalltalk等纯面向对象编程语言,还是使用C++、PHP、Delphi、JavaScript等可支持面向对象编程 的语言,你都需要了解软件设计模式!“软件设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。” (软件设计模式的定义) ——《Easy搞定Golang设计模式》

Go语言并没有将自己定位成面向对象的编程语言,但讨论23种设计模式对我们理解它也会有一定的帮助。

详见:23种设计模式