设计模式学习1——策略模式(Strategy)

嘿嘿,不知不觉这个策略模式就搞掂了,看来设计模式学起来也不是很难嘛。 

策略模式

   官方解释:Strategy策略模式是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类.

  我们达到了在运行期间,可以自由切换算法的目的。

  实际整个Strategy的核心部分就是抽象类的使用,使用Strategy模式可以在用户需要变化时,修改量很少,而且快速.

  Strategy和Factory有一定的类似,Strategy相对简单容易理解,并且可以在运行时刻自由切换。Factory重点是用来创建对象。

  Strategy适合下列场合:

1.以不同的格式保存文件;

2.以不同的算法压缩文件;

3.以不同的算法截获图象;

4.以不同的格式输出同样数据的图形,比如曲线 或框图bar等

  个人理解:说的这么帅……其实好像也不是很复杂,就是把对象的行为(算法)抽象出来,然后其他对象使用的时候用一个类来拼装一下,使具体的对象可以使用自己喜欢的方法做爱做的事儿。

        最后,上一个实例吧,“鸭子的故事”,先上图:

 点击下载源码
 
 

posted @ 2008-05-24 02:22 张玉峰 阅读(76) 评论(4)  编辑 收藏 所属分类: ×设计模式×

  回复  引用    
#1楼 2008-05-24 11:44 | 郭明浩 [未注册用户]
顶一下! 以后要认真研究一下!
  回复  引用    
#2楼 2008-05-25 14:05 | 郭明浩 [未注册用户]
顶! 期待下一期!
  回复  引用  查看    
#3楼 [楼主]2008-05-25 14:47 | 张玉峰      
.......一个比一个不好理解。
  回复  引用    
#4楼 2008-06-05 14:08 | 路过 [未注册用户]
这种模式在某一算法的不同实现的情况下应用的比较多。
主要是利用多态代替代码中的if..else..代码块,是代码简洁,可复用性强
也可以减小功能扩展的开支,针对与不同的算法只用产生不同的实现类
这种模式在"重构"一书中被马大爷反复提到,可见其重要性


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-05-25 14:49 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: