首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java下令模式

2012-08-25 
java命令模式Uml图:?接收者:import java.io.Filepublic class MakeDir {public void createDir(String na

java命令模式

Uml图:


java下令模式

?

接收者:
import java.io.File;public class MakeDir {      public void createDir(String name) {            File dir = new File(name);            dir.mkdir();      }      public void deleteDir(String name) {            File file = new File(name);            file.delete();      }}
?
命令接口:
public interface Command {      public abstract void excute(String name);      public abstract void undo();}
?
具体命令:
import java.util.ArrayList;public class ConcreteCommand implements Command {      ArrayList<String> dirNameList;      MakeDir makeDir;      ConcreteCommand(MakeDir makeDir) {            dirNameList = new ArrayList<String>();            this.makeDir = makeDir;      }      public void excute(String name) {            makeDir.createDir(name);            dirNameList.add(name);      }      public void undo() {            if (dirNameList.size() > 0) {                  int m = dirNameList.size();                  String str = dirNameList.get(m - 1);                  makeDir.deleteDir(str);                  dirNameList.remove(m - 1);            } else {                  System.out.println("没有需要撤销的操作");            }      }}
?
请求者
public class RequestMakedir {      Command command;      public void setCommand(Command command) {            this.command = command;      }      public void startExecuteCommand(String name) {            command.excute(name);      }      public void undoCommand() {        command.undo();      }}
?
应用程序:
public class Application {      public static void main(String[] args) {      MakeDir makeDir =new MakeDir();//创建接收者      Command command =new ConcreteCommand(makeDir);//创建具体命令并指定接收者      RequestMakedir requestMakedir =new RequestMakedir();      requestMakedir.setCommand(command);      requestMakedir.startExecuteCommand("jiafei");//建立jiafei目录      requestMakedir.startExecuteCommand("jerry");//建立jerry目录      requestMakedir.startExecuteCommand("tom");//建立tom目录      requestMakedir.undoCommand();//删除名字是tom的目录      requestMakedir.undoCommand();//删除名字是jerry的目录      }}
?

热点排行