策略模式与简单工厂模式

简介:

1,简单工厂模式

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

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

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

 

2,策略模式

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

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

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

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

 

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

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

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

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

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

本文转自hapjin博客园博客,原文链接:http://www.cnblogs.com/hapjin/p/4977896.html,如需转载请自行联系原作者


相关文章
|
7月前
|
设计模式 uml 微服务
个人理解简单工厂模式和策略模式的区别
个人理解简单工厂模式和策略模式的区别
66 1
|
14天前
|
Java
简单工厂模式
简单工厂模式
19 0
|
4月前
|
设计模式 算法
设计模式思考,简单工厂模式和策略模式的区别?
设计模式思考,简单工厂模式和策略模式的区别?
|
4月前
|
C#
C#简单工厂模式
C#简单工厂模式
51 0
|
6月前
|
编译器
简单工厂模式~
简单工厂模式~
|
7月前
浅谈简单工厂模式
浅谈简单工厂模式
|
8月前
|
前端开发
简单工厂模式
简单工厂模式
60 0
|
设计模式 程序员
嘿!策略模式和工厂模式的区别你知道吗?
嘿!策略模式和工厂模式的区别你知道吗?
简单的工厂模式和工厂方法模式
简单的工厂模式和工厂方法模式
|
设计模式 XML 存储
04.创建型:简单工厂模式
创建型:简单工厂模式
88 0

热门文章

最新文章