一、什么是设计模式
- 软件设计模式(Software Design Pattern),又称设计模式,
- 是一套被反复使用、多数人知晓的、代码设计经验的总结。
- 它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。
- 也就是说,它是解决特定问题的一系列套路,具有一定的普遍性,可以反复使用代码设计经验的总结。
二、为什么要学习设计模式
- 使程序设计更加标准化、代码编制更加工程化,使软件开发效率大大提高,从而缩短软件的开发周期。
- 使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强。
- 可以提高程序员的思维能力、编程能力和设计能力。
4, 软件设计模式只是一个引导。在具体的软件幵发中,必须根据设计的应用系统的特点和要求来恰当选择。
5. 对于简单的程序开发,可能写一个简单的算法要比引入某种设计模式更加容易。但对大项目的开发或者框架设计,用设计模式来组织代码显然更好。
三、GoF 23种设计模式
- 1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)等 4 位作者
- 合作出版了《设计模式:可复用面向对象软件的基础》
- 在本教程中收录了 23 个设计模式,这是设计模式领域里程碑的事件
- 这 4 位作者在软件开发领域里也以他们的“四人组”(Gang of Four,GoF)匿名著称。
四、设计模式分类
根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式 3 种。
1、创建型模式5种
用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。
- 工厂方法设计模式
- 抽象工厂设计模式
- 单例设计模式
- 原型设计模式
- 建造者设计模式
2、结构型模式7种
用于描述如何将类或对象按某种布局组成更大的结构
- 代理设计模式
- 适配器设计模式
- 桥接设计模式
- 装饰器设计模式
- 外观设计模式
- 享元设计模式
- 组合设计模式
- 设计模式