java 命令模式
命令模式是一种常用实用的设计模式,它主要是通过三者的结合(命令,增加命令,事件激发)在一起,充分显示了灵活性,好了,废话少说。看下面一个例子
首先是建立命令接口CommandInterface.java
package command;/** * 命令接口 * @author Administrator * */public interface CommandInterface {public void excute();}
实现命令的接口类
package command;/** * 命令执行类 * @author Administrator * */public class inCommand implements CommandInterface{@Overridepublic void excute() {// TODO Auto-generated method stubSystem.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;@Overridepublic void setCommand(CommandInterface comd) {// TODO Auto-generated method stubthis.comd=comd;}@Overridepublic CommandInterface getCommand() {// TODO Auto-generated method stubreturn comd;}}
事件激发接口
package command;/** * 建立事件激发接口 * @author Administrator * */public interface ActionInterface {public void actionPerformed(AddCommandInterface comInter);}//要不要这个类看自己的需求来建立的
实现激发事件的类
package command;public class ActionCommand implements ActionInterface {@Overridepublic void actionPerformed(AddCommandInterface comInter) {// TODO Auto-generated method stubcomInter.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 stubinCommand in=new inCommand();ExcuteCommand.exec(in);//outCommand out=new outCommand();//ExcuteCommand.exec(out);//printCommand print=new printCommand();//ExcuteCommand.exec(print);}}