java 下令模式
java 命令模式
命令模式是一种常用实用的设计模式,它主要是通过三者的结合(命令,增加命令,事件激发)在一起,充分显示了灵活性,好了,废话少说。看下面一个例子
首先是建立命令接口CommandInterface.java
实现命令的接口类
增加事件的接口
//上面这可以增加些自己需要的功能
增加事件的实现类
事件激发接口
实现激发事件的类
管理类
实现类,也可以说是统一管理类吧,很方便的
好了,到我们写代码去测度的了
命令模式是一种常用实用的设计模式,它主要是通过三者的结合(命令,增加命令,事件激发)在一起,充分显示了灵活性,好了,废话少说。看下面一个例子
首先是建立命令接口CommandInterface.java
package command; /** * 命令接口 * @author Administrator * */ public interface CommandInterface { public void excute(); }
实现命令的接口类
package command; /** * 命令执行类 * @author Administrator * */ public class inCommand implements CommandInterface{ @Override public void excute() { // TODO Auto-generated method stub System.out.println("in command"); } }
增加事件的接口
package command; /** * 增加命令的接口 * @author Administrator * */ public interface AddCommandInterface { public void setCommand(CommandInterface comd); public CommandInterface getCommand(); }
//上面这可以增加些自己需要的功能
增加事件的实现类
package command; public class InAddCommand implements AddCommandInterface{ private CommandInterface comd=null; @Override public void setCommand(CommandInterface comd) { // TODO Auto-generated method stub this.comd=comd; } @Override public CommandInterface getCommand() { // TODO Auto-generated method stub return comd; } }
事件激发接口
package command; /** * 建立事件激发接口 * @author Administrator * */ public interface ActionInterface { public void actionPerformed(AddCommandInterface comInter); }//要不要这个类看自己的需求来建立的
实现激发事件的类
package command; public class ActionCommand implements ActionInterface { @Override public void actionPerformed(AddCommandInterface comInter) { // TODO Auto-generated method stub comInter.getCommand().excute(); } }
管理类
package command; /** * 对命令接口的实现 * @author Administrator * */ public class Actualize { private AddCommandInterface addCommand=null; public Actualize() { // TODO Auto-generated constructor stub } /** * 增加命令 */ public void addCommandInter(AddCommandInterface addCommand){ this.addCommand=addCommand; } /** * 执行命令 */ public void addAction(ActionInterface action){ action.actionPerformed(this.addCommand); } }
实现类,也可以说是统一管理类吧,很方便的
package command; public class ExcuteCommand { public static void exec(CommandInterface com){ Actualize actu=new Actualize(); InAddCommand inAdd=new InAddCommand(); inAdd.setCommand(com); actu.addCommandInter(inAdd); actu.addAction(new ActionCommand()); } }
好了,到我们写代码去测度的了
package command; public class TestCommand { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub inCommand in=new inCommand(); ExcuteCommand.exec(in); // outCommand out=new outCommand(); // ExcuteCommand.exec(out); // printCommand print=new printCommand(); // ExcuteCommand.exec(print); } }