策略模式
来源:互联网 发布:哈布斯堡的灭亡知乎 编辑:程序博客网 时间:2024/06/18 14:10
1.定义一个策略接口IStrategy.java
/** * 定义一个策略接口,operate是要被实现的方法 */public interface IStrategy { public void operate();}
2.定义3种行为,实现IStrategy 中的operate方法
- 在行为BackDoor.java中实现operate方法
public class BackDoor implements IStrategy { @Override public void operate() { System.out.println("在处理事情之前需要走一个后门"); }}
- 在行为GivenGreenLight.java中实现operate方法
public class GivenGreenLight implements IStrategy { @Override public void operate() { System.out.println("第二步,还需要人开个绿灯"); }}
- 在行为BlockEnemy.java中实现operate方法
public class BlockEnemy implements IStrategy { @Override public void operate() { System.out.println("事情结束之前,还需要有人扫尾工作"); }}
3.定义一个容器Context.java
/** * 定义一个容器,调用者使用容器去调用行为 * 程序解耦 */public class Context { private IStrategy iStrategy; public Context(IStrategy iStrategy) { this.iStrategy = iStrategy; } /** * 执行操作 */ public void operate() { iStrategy.operate(); }}
4.定义调用者ZhaoYun.java
/** * 定义调用者 * 策略模式的优势:高内聚,低耦合 * 运用了Java特性:多态 */public class ZhaoYun { public static void main(String[] arges) { Context context; context = new Context(new BackDoor()); context.operate(); //开后门 context = new Context(new GivenGreenLight()); context.operate(); //开个绿灯 context = new Context(new BlockEnemy()); context.operate(); //扫尾 }}
5.程序运行结果
在处理事情之前需要走一个后门第二步,还需要人开个绿灯事情结束之前,还需要有人扫尾工作
0 0
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- (第八周项目3)顺序串算法
- 2015阿里巴巴前端实习生在线笔试题
- Android:WebView与Javascript交互(相互调用参数、传值)
- echarts 关系图 option
- servlet 总结
- 策略模式
- C语言文件操作----文件的读写
- System类
- WindowManager$BadTokenException
- springmvc时间反序列化
- php获取结果集的几个方法
- ajax跨域问题
- DOMContentLoaded
- linux串口权限问题