策略模式与状态工厂,简单工厂的恩怨
2017-02-14 21:19
218 查看
前言
为什么题目叫做他们的恩怨呢?因为策略模式与状态模式很相似,他们互相指责对他是冒牌货,简单工厂和策略模式没有上一个模式仿造的厉害,让我一起看看谁才是真的!他们之间的区别是什么?(如有异同请指出)
内容
首先给大家看一下他们的相似之处,就如两个瓷器一样,从表面上看我像都是一样的,我们首先看一下他们的UML图策略模式UML
状态工厂UML
大家光从uml图中看是不是感觉这两个图基本上没有太大的差异,在我们学习设计模式的时候uML对于我们来说也是非常重要的,我们往往通过uMl图来知道这个程序的整体架构,到底谁是谁?哈哈
策略模式
我们把出行方式分成很多种,可以通过接口找到自己相应的类,当我们修改一个算法类的时候都会影响到其他类缺点:所以对于策略的选择还是要客户端来做。所以在客户端就会用添加判断语句
状态模式
通过UML图可以发现策略模式跟状态模式很相似状态模式:例如我们人的行为可以有不同的状态。当行为改变的时候,状态也会随之改变。
缺点:状态模式会很多
相似与区别
相似之处两种模式都遵循开闭的设计原则,都是行为型,行为改变会影响,状体模式的行为改变会影响状态,策略模式的策略改变行为
区别
策略模式的客户端有条件判断,而状态模式的客户端没有。使用状态模式无需考虑具体的状态,因为行为变化状态就会自动的变化
策略模式在对象初始化的时候就已经更改执行。而状态模式是根据对象实例周期时间动态的改变
简单工厂的区别
工厂模式是创建型的,他主要注重于对象的创建,提供创建对象的接口,对象的创建于客户端无关,但策略模式是行为性的,它关注的是行为和算法,并且他与客户端有关
总结:
通过找联系与区别我们可以更好的去记住不同的模式
相关文章推荐
- 策略模式结合简单工厂模式
- 简单工厂,工厂方法,抽象工厂,策略模式
- 简单工厂模式和策略模式的区别
- 简单工厂 和 策略模式的区别
- 简单工厂模式和策略模式的区别(原)
- 策略模式与简单工厂的C++实现
- 设计模式解读 之策略模式(参照策略模式与简单工厂模式的对比)
- 大话设计模式中简单工厂模式和策略模式的商场收银软件实例的C++代码
- 简单工厂与策略模式的结合
- 简单工厂模式与策略模式的区别
- 策略模式:策略模式与简单工厂模式的异同
- 设计模式学习笔记一 简单工厂策略模式实现销售策略的变更(一)
- 策略模式与简单工厂模式
- 策略模式 + 简单工厂模式
- 设计模式心得笔记--简单工厂和策略模式
- 大话设计模式-----简单工厂模式与策略模式
- 简单工厂与策略模式的区别
- 策略模式+简单工厂=强强联合
- 设计模式1(简单工厂模式,策略模式)
- 大话设计模式1 简单工厂模式 策略模式