策略模式与简单工厂模式

原创 2015年11月19日 15:56:52

1,简单工厂模式

a) 有一个抽象的接口用来表示工厂需要生产的产品共性;然后各个具体的产品类实现该抽象接口。

b) 工厂只需要持有产品的抽象接口,工厂接收一个 TYPE 参数来决定生产何种产品。

c) 对于客户而言,当他需要某种类型的产品时,只需要获得工厂对象,然后将产品的 TYPE参数传递给工厂,由工厂创建他所需要的产品。


2,策略模式

策略,本质上是一种算法。当客户需要处理某件事情时,由于所处的环境不同,他可以采取不同的方式(策略)去处理。因此,客户关注的是如何方便得获取所需的策略。

a) 有一个抽象的接口用来表示策略的框架,它定义了基本的处理算法。然后各个具体的策略实现该接口来扩充、实现相应的具体策略。

b) 有一个Context类来表示环境,Context拥有抽象的策略接口,它根据 TYPE参数来决定使用哪个策略。

c) 对于客户而言,当他需要使用某种策略时,肯定所处在某个Context上下文环境中,他传递一个TYPE参数给Context,由Context来负责使用何种策略。


3,简单工厂模式与策略模式的比较

①策略模式与简单工厂模式的结构图基本一致,因此,二者的使用模式基本一致。

②简单工厂模式的目的是创建对象,并使用所创建的对象去做事情(需要持有对象的引用);策略模式的目的是使用策略,即客户只关注我需要某种策略,你提供一个给我,我拿着该策略完成任务就行了(不需要持有策略的引用)。

③策略模式是定义一系列算法的方法,这些算法以不同的方式完成相同的工作,即算法的实现不同。策略模式让客户以统一的方式来调用不同的算法,将算法的使用者与算法解耦。

④简单工厂模式定义如何获得产品的方法,不同的产品具有不同的功能,简单工厂模式解决了客户如何有效地获取他所关心的产品。对客户而言,只需要持有一个工厂对象,给工厂一个产品的类型参数,让工厂负责生产相应的产品即可。然后,客户就拿着这个产品,进行方法调用,获得相关的产品的功能。

简单工厂模式和策略模式的区别(转)

转自 fwj380891124的 http://blog.csdn.net/fwj380891124/article/details/7552305           ...

策略模式 + 简单工厂模式

《大话设计模式》实现代码 //cash.h #ifndef _CASH_H_ #define _CASH_H_ #include using namespace std; cla...

简单工厂模式和策略模式的区别

最近一直在抽时间研究设计模式,之前对设计模式也有一定的了解,但是都没有平心静气的去研究过,只是了解了一些皮毛,最近打算再深入研究一下,重新打开了设计模式的数据,对之前的疑问一个个的刨根问底,今天看了简...
  • lnc2003
  • lnc2003
  • 2017年02月14日 15:37
  • 99

简单工厂模式和策略模式的区别

最近一直在抽时间研究设计模式,之前对设计模式也有一定的了解,但是都没有平心静气的去研究过,只是了解了一些皮毛,最近打算再深入研究一下,重新打开了设计模式的数据,对之前的疑问一个个的刨根问底,今天看了简...
  • zeroyl
  • zeroyl
  • 2014年08月21日 10:29
  • 305

简单工厂模式和策略模式的区别

直接上代码: 简单工厂模式: ------------------------------一个抽象类   -------------------------- abstract class AbsCl...

策略模式及与简单工厂模式的结合

策略模式: 1.策略模式动机:完成一项任务有多种不同的方式,每一种方式称为一种策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。 在软件开发中常常遇到这种情况:实现某一功能有多种途...
  • ustcqi
  • ustcqi
  • 2012年12月19日 15:03
  • 2217

策略模式和简单工厂模式的区别

直接上代码: 简单工厂模式: ------------------------------一个抽象类 -------------------------- abstract class AbsC...

策略模式与简单工厂模式

昨天用C++实现了《大话》里面的策略模式 开始的时候很迷茫 因为感觉和简单工厂差的不是很多 ————————————————————————————————————————————— ht...

策略模式与简单工厂模式的区别

转载至http://www.cnblogs.com/me115/p/3790615.html 工厂模式和策略模式看着很像,经常让人混淆不清;  它们的区别在哪里,需要细细体味; ...

简单工厂模式和策略模式的区别

最近一直在抽时间研究设计模式,之前对设计模式也有一定的了解,但是都没有平心静气的去研究过,只是了解了一些皮毛,最近打算再深入研究一下,重新打开了设计模式的数据,对之前的疑问一个个的刨根问底,今天看了简...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:策略模式与简单工厂模式
举报原因:
原因补充:

(最多只允许输入30个字)