这一思想后来被引入软件工程领域,形成了软件设计模式的概念。设计模式是对在特定上下文中反复出现的问题的解决方案的描述。它们提供了关于如何组织代码的通用方案,而不是特定的实现代码。
在软件工程中,设计模式的推广和普及主要归功于四位计算机科学家——埃里希·伽玛(Erich Gamma)、理查德·赫尔姆(Richard Helm)、拉尔夫·约翰逊(Ralph Johnson)和约翰·弗利塞德斯(John Vlissides),他们共同撰写了《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)一书。这本书总结了23种经典的面向对象设计模式,被称为“GoF”(Gang of Four,四人帮)设计模式。
软件设计复杂的根本原因是变化,软件设计的目标是复用。面向对象编程的设计模式以面向对象编程的原则为的理论基础和指导方针,提供了经过验证的解决方案来应对变化和提高代码的复用性,可以分为三大类:

参考:C++设计模式 李建忠