设计模式学习与实践(十七)----策略模式(strategy)
来源:互联网 发布:淘宝上货到付款靠谱吗 编辑:程序博客网 时间:2024/05/24 06:31
1.1.1 描述
l 正规描述
策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。
l 形象描述
跟不同类型的MM约会,要用不同的策略,有的请看电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最合适,但目的都是为了得到MM的芳心,我的追MM锦囊中有好多Strategy哦。
1.1.2 类图&示意代码
public abstract class Strategy(){
public abstract void Operation1();
}
public class ConcreteStrategy1 extends Strategy(){
public void Operation1(){
//to do
}
}
public class ConcreteStrategy2 extends Strategy(){
public void Operation1(){
//to do
}
}
public class StrategyUser(){
public void Operation1 (int which){
Strategy s;
if(which == 1){
s = new ConcreteStrategy1();
}else if(which == 2){
s = new ConcreteStrategy2();
}
if(s != null){
s.Operation1();
}
}
}
public class Client(){
public void main(String args[]){
StrategyUser su = new StrategyUser();
su.Operation1(1);
su.Operation1(2);
}
}
注:
1.1.3 举例
1.1.4 比较
- 设计模式学习与实践(十七)----策略模式(strategy)
- 设计模式学习笔记二十三(Strategy策略模式)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式学习总结-策略模式(Strategy Pattern)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 【设计模式】学习笔记1:策略模式(Strategy)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式学习笔记(四):策略模式【Strategy】
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式C++学习笔记之一(Strategy策略模式)
- 设计模式学习总结(一)策略模式Strategy Pattern
- 设计模式学习笔记--策略模式(Strategy Pattern)
- EDMA Channel Parameter Entries
- Oracle分页(limit方式的运用)+付上SqlServer分页+千万级数据分页的存储过程
- C语言中的宽字符与多字节字符[转]
- Oracle按时间段分组统计
- 利用JProfiler对应用服务器内存泄漏问题诊断一例(转)
- 设计模式学习与实践(十七)----策略模式(strategy)
- asp.net数据导出到word
- 《高质量程序设计指南》-------new三种使用方式
- ORACLE的表分析策略
- pku 2418 (二叉排序树)
- 设计模式学习与实践(十八)----模板模式(template)
- RREORGCHK,REORG,RUNSTATS的作用与区别
- 代理服务器端口分配一览表
- 设计模式学习与实践(十九)----状态模式(state)