策略模式(Strategy)
来源:互联网 发布:天虹纺织集团出口数据 编辑:程序博客网 时间:2024/06/06 07:10
今天研究了一下策略模式,策略模式(Strategy)定义了一个算法家族,对每个算法分别封装成为一个单独的类,让他们之间可以相互的替换,此模式让算法的变化不会影响到使用算法的客户,可以减少了各种算法类与使用算法类之间的耦合。策略模式包含Strategy、context两个模块,Strategy为Context定义可一系列可供重用的算法或行为,继承有助于析取出这些算法中的公用功能。
策略模式就是用来封装算法的,在实践中,我们可以用它来封装几乎封装任何类型的规则,只要在分析过程中需要在不同时间应用不同的业务规则,就可以考虑用策略模式处理这种变化的可能性。
在策略模式中,选择所用具体实现的职责有客户端负责,然后转给策略模式的Context对象。
策略模式的UML类图:
分析对比策略模式和简单工厂设计模式,我们可以发现,这两个设计模式的用法思路非常相似,唯一的不同之处就是,对于简单工厂设计模式来讲,选择具体实现方法是由工厂类Factory来负责,而在策略模式中是由客户端程序来负责的。因此,为了即达到定以算法家族实现独立算法的目的,又可以不让客户端来负责具体实现的选择,在具体的实践项目中我们可以将简单工厂设计模式与策略模式结合起来使用。
- 策略模式 Strategy模式
- Strategy模式 策略模式
- 策略模式(Strategy模式)
- 策略模式(Strategy Pattern)
- Strategy策略模式
- 策略(Strategy)模式
- Strategy策略模式
- 策略(Strategy)模式
- 策略模式(Strategy Pattern)
- 策略模式 Strategy Pattern
- 策略模式(Strategy Pattern)
- 策略模式(Strategy)
- HeadFirst Strategy策略模式
- 策略模式(Strategy Pattern)
- Strategy Pattern (策略模式)
- 泛化策略模式(Strategy)
- Strategy 策略模式
- Strategy 策略模式
- javascript Cookie的增、删、改 、查
- spring3.2MVC与hibernate3整合配置文件
- Project Euler 51 Prime digit replacements(枚举)
- 使用shell写cgi不能拷贝的问题
- C# TreeView递归显示整个系统盘符文件目录及文件
- 策略模式(Strategy)
- Why you should take your 20s seriously
- 关于Wubi安装增加容量以及移至真实分区的解决方法
- 浅析值类型与引用类型的内存分配[转载]
- [面试] 结构体占用空间的问题,内存对齐~! 真的懂了,cpu取加快速度,省空间来考虑。
- 零零散散学算法系列之目录(持续更新)
- 要素类的复制
- vc6.0快捷键
- hudson中Build Triggers的时间问题