设计模式(工厂模式、适配器模式)
2016-09-06 10:05
267 查看
设计模式是面向对象程序编程的重要学习内容。设计模式的应用对于面向对象编程来说相当于经验,能够复用代码同时安全可靠。本文介绍工厂模式、策略模式和适配器模式。
工厂模式包括简单工厂模式,工厂方法模式和抽象工厂模式。
简单工厂模式:是根据模型或标签(参数)选择生产不同的产品。表现在一个工厂生产多种产品。
工厂方法模式:是在简单工厂模式上进化而来的。表现在有多个工厂,每个工厂生产一种产品。
抽象工厂模式:和工厂方法模型类似。但是每个工厂此时生产一类产品,可能包括多种产品。
看上去像是工厂的进化论,先是简单工厂模式可是生产任何产品,但是未必效率会高。经分治优化而得工厂方法模型,每个工厂只生产一种产品。此时对于工厂等基础设施的利用率不高。抽象工厂方法取得折中,即分类生产提高效率,又避免需要大量的厂房(类)。
![](https://img-blog.csdn.net/20160906094904607?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
策略模式:所谓的策略模式书上说用在算法封装等。首先将算法封装成一个抽象类,继承抽象类可以有不同的实现。其他类怎么引用呢?其他类拥有抽象类对象,利用指针、或标签、模板初始化设置不同的算法实现。
适配器模式:这个要以STL中的deque、stack、queue为例。适配器是利用已有接口封装转化为新的接口。比如对于stack和queue我不需要deque中那么多操作,我只需要pop和push。这时我先用抽象类封装这两个操作,写stack和queue时可以利用已有接口deque,实现功能。在用的时候,只用抽象类代表,初始化stack或者queue来使用。
工厂模式包括简单工厂模式,工厂方法模式和抽象工厂模式。
简单工厂模式:是根据模型或标签(参数)选择生产不同的产品。表现在一个工厂生产多种产品。
工厂方法模式:是在简单工厂模式上进化而来的。表现在有多个工厂,每个工厂生产一种产品。
抽象工厂模式:和工厂方法模型类似。但是每个工厂此时生产一类产品,可能包括多种产品。
看上去像是工厂的进化论,先是简单工厂模式可是生产任何产品,但是未必效率会高。经分治优化而得工厂方法模型,每个工厂只生产一种产品。此时对于工厂等基础设施的利用率不高。抽象工厂方法取得折中,即分类生产提高效率,又避免需要大量的厂房(类)。
策略模式:所谓的策略模式书上说用在算法封装等。首先将算法封装成一个抽象类,继承抽象类可以有不同的实现。其他类怎么引用呢?其他类拥有抽象类对象,利用指针、或标签、模板初始化设置不同的算法实现。
适配器模式:这个要以STL中的deque、stack、queue为例。适配器是利用已有接口封装转化为新的接口。比如对于stack和queue我不需要deque中那么多操作,我只需要pop和push。这时我先用抽象类封装这两个操作,写stack和queue时可以利用已有接口deque,实现功能。在用的时候,只用抽象类代表,初始化stack或者queue来使用。
相关文章推荐
- 设计模式实战之--工厂模式结合适配器模式
- 设计模式篇-----工厂设计模式,单例设计模式,适配器模式
- 设计模式之(2)简单工厂模式
- 设计模式[2]-旧话重提之工厂模式
- 转:C#设计模式之简单工厂篇
- .NET中的设计模式一:工厂模式
- zt:工厂模式-简单工厂(设计模式的入门级模式—初级)
- .NET中的设计模式一:工厂模式 选择自 lane_cn 的 Blog
- Dot Net 设计模式—简单工厂
- 设计模式c#语言描述——建造者模式、适配器模式、合成(Composite)模式
- 设计模式:工厂
- .NET中的设计模式一:工厂模式
- 设计模式[2]-旧话重提之-各种工厂模式
- Java设计模式之工厂模式篇
- 设计模式之-简单工厂、工厂方法、抽象工厂
- C#设计模式学习笔记---简单工厂模式
- 设计模式-旧话重提之类工厂的使用
- .NET实用设计模式:工厂模式(Factory)
- C#设计模式之简单工厂篇
- C#设计模式之简单工厂篇