1.软件设计模式概述
1.什么是设计模式
设计模式从建筑行业而来:
《建筑的永恒之道》
作者: Christopher Alexander
定义:
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的成功的解决方案,无须再重复相同的工作。
简单的说:
设计模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。
2.软件模式
GoF将模式的概念引入软件工程领域,这标志着软件模式的诞生。
软件模式(Software Patterns)是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。
软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件开发生命周期的每一个阶段都存在着一些被认同的模式。
软件模式与具体的应用领域无关,也就是说无论你从事的是移动应用开发、桌面应用开发、Web应用开发还是嵌入式软件的开发,都可以使用软件模式。
3 软件设计模式的种类
创建型(Creational)模式: 如何创建对象;
结构型(Structural )模式: 如何实现类或对象的组合;
行为型(Behavioral)模式: 类或对象怎样交互以及怎样分配职责。
3.1 创建型
- 单例模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 原型模式
- 建造者模式
3.2 结构型
- 适配器模式
- 桥接模式
- 组合模式
- 装饰模式
- 外观模式
- 享元模式
- 代理模式
3.3 行为型
- 职责链模式
- 命令模式
- 解释器模式
- 迭代器模式
- 中介者模式
- 备忘录模式
- 观察者模式
- 状态模式
- 策略模式
- 模板方法模式
- 访问者模式
4. 软件设计模式有什么作用?
对于初学者来说,学习设计模式将有助于更加深入地理解面向对象思想, 让你知道:
1. 如何将代码分散在几个不同的类中?
2. 为什么要有“接口”?
3. 何谓针对抽象编程?
4. 何时不应该使用继承?
5. 如果不修改源代码增加新功能?
6. 更好地阅读和理解现有类库与其他系统中的源代码。