行为型之命令模式
来源:互联网 发布:查看db2实例下数据库 编辑:程序博客网 时间:2024/06/11 20:40
命令模式将"行为请求者与行为实现者进行解耦"
在请求和实现之间加一中间层
如实现四则运算例子
//运算接口ICommand.java
package demo;
public interface ICommand {
public void handle(int num1,int num2);
}
//实现运算Mul.java
package demo;
public class Mul implements ICommand {
public void handle(int num1,int num2) {
System.out.print(num1*num2);
System.out.println();
}
}
//Plus.java
package demo;
public class Plus implements ICommand {
public void handle(int num1,int num2) {
System.out.print(num1+num2);
System.out.println();
}
}
//Mul.java
package demo;
public class Mul implements ICommand {
public void handle(int num1,int num2) {
System.out.print(num1*num2);
System.out.println();
}
}
//Sub.java
package demo;
public class Sub implements ICommand {
public void handle(int num1,int num2) {
System.out.print(num1-num2);
System.out.println();
}
}
//中间层,命令层
package demo;
import java.util.HashMap;
import java.util.Map;
public class Commands {
// 命令模式的中间层,完成接收命令,统一执行
private Map map;
public Commands() {
map = new HashMap();
addCommand("1", new Plus());
addCommand("2", new Sub());
addCommand("3", new Mul());
}
public void addCommand(String cmdId, ICommand cmd) { 用来收集命令
map.put(cmdId, cmd);
}
public void doRequest(String cmdId,int num1,int num2) {
//统一执行的方法
ICommand cmd = (ICommand)map.get(cmdId);
cmd.handle(num1,num2);
}
}
//调用TestMain.java
package demo;
public class testMain {
public static void main(String[] args) {
Commands cmds = new Commands();
cmds.doRequest("1", 100,5);
cmds.doRequest("2", 100,5);
cmds.doRequest("3", 100,5);
}
}
- 行为型之命令模式
- 设计模式-行为型之命令模式
- 行为型模式之命令模式实现
- 行为模式之命令模式
- 行为模式之命令模式
- 行为型模式之命令COMMAND
- Java设计模式之行为型模式(命令模式)
- 设计模式(四):行为型模式之命令模式
- 行为型模式-命令
- 行为型--命令模式
- 命令模式(行为型)
- 行为型模式----命令模式
- 行为型模式-命令模式
- 行为型模式--命令模式
- 设计模式之命令(Command)---对象行为型模式
- 行为型模式之命令模式(Command)
- java设计模式(行为型)之命令模式
- 行为型模式之命令模式(Command)
- LoadRunner8.0是不支持IE7的解决方法
- 手动添加表
- 给自己以及其他初学者的建议
- C/C++库简介
- javascript 获取URL参数
- 行为型之命令模式
- JSP登录后自动返回到登录前页面
- 计算两个日期相差的天数、月数
- 计划任务命令提示符
- sql备份的一种解决方案
- ffmpeg视频格式转换分析
- javascript 获得全选
- oracle常用命令及脚本
- 用Mencoder进行任意视频格式转换成flv