代码改变世界

设计模式学习之策略模式

2012-12-09 20:36  哒不溜  阅读(167)  评论(0编辑  收藏  举报

就我目前的理解来看,我觉得策略模式和简单工厂模式很相似,为什么这样说呢,听我一一道来:

相同点:

1、他们都有一个所有对象抽象的一个抽象类,在给抽象类中有一个抽象方法

2、在一般类都继承自该抽象类,并都是实现了给抽象方法

 

不同点:

1、简单工厂模式有一个工厂类,用来接收不同的参数,通过该参数来实例化不同的类。

2、而策略模式有一个上下文类,该类有两个作用,第一个就是构造函数通过参数,来个抽象类指定对象;第二个就是定一个公共方法,通过对象来调用抽象方法,并把得到的值返回。

总结,简单工厂模式,实例化在工厂类中,而策略模式实例化在客户端调用时。

 

源码下载