您的位置:首页 > 其它

《大话设计模式》读书笔记二——策略模式

2009-05-21 16:33 330 查看
第一次看《大话设计模式》中的策略模式时,我纳闷策略模式和简单工厂好像没有什么区别呀,但为什么又总结出了策略模式这个模式呢?

带着这个疑问,我又回头去看了关于策略模式的讲解,“书读百遍其义自见”,果不其然,终于看出里面的区别。首先简单工厂主要用的是面向对象中多态的特性,即任何一个子类的实例都可以赋给父类类型变量,这些可以封装在工厂类里面。在客户端应用时,就需要同时使用到父类和工厂类。而策略模式区别简单工厂的一点是它多出了一个Context类,这个类封装了算法的变化,在客户端也只需要使用Context这个类就可以实现针对不用情况使用不同的算法(策略)。从某种程度上说,这种模式把耦合度降低了,即客户端只需要认识Context类,可以完全不管具体的实现算法类。

再来看看定义:

策略模式是一种定义了一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。

关于策略模式,《大话设计模式》讲的很容易理解,在园里另外一个朋友写的文章也很好。

/article/4685052.html(鸭子——策略模式(Strategy))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: