Command模式:封装命令。
undo功能(撤回) 就是用Command实现的
public abstract class Command{
public abstract void doit();//操作
public abstract void undo();//撤回
}
例如:
新增命令
public class InsertCommand extends Command{
Content c;
String strToInsert = “hello”;
public InsertCommand (Content c){
this.c=c;
}
public void doit(){c.msg = c.msg+strToInsert;}
public void undo(){c.msg=c.msg.substring(0,c.msglength()-strToInsert.length());}
}
复制命令:
public class CopyCommand extends Command{
Content c;
public CopyCommand(Content c){this.c = c;}
public void doit(){c.mgs=c.msg+c.msg;}
public void undo(){c.msg=c.msg.substring(0,c.msg.length()/2);}
}
删除命令:
public class DeleteCommand(Content c){this.c=c;}
Content c;
String deleted;
public void doit(){
deleted = c.msg.substring(0,5);
c.msg=c.msg.substring(5,c.msg.length());
}
public void undo(){c.msg=deleted+c.msg;}
}