您当前的位置: 首页 > 

命运之手

暂无认证

  • 1浏览

    0关注

    747博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【设计模式】【11】命令模式

命运之手 发布时间:2022-04-18 11:02:21 ,浏览量:1

使用场景

命令模式,英文名Command Pattern

该模式在处理工作时,不是直接去处理,而是将工作封装为一系列的命令,交给接收者去处理

这样做的好处是,工作是难以记录的,但命令是可以记录的

将这些命令记录起来,就可以实现日志、撤销、恢复、重做等功能

实现代码


	//任务执行者
	//执行者并不是自己去执行,而是将任务转给对应的接收者去处理
	public class Invoker {
	
	    LinkedList commands = new LinkedList();
	
	    public void invoke(Command command) {
	        this.commands.addLast(command);
	        command.execute();
	    }
	
	    public void undo() {
	        Command last = commands.getLast();
	        last.cancel();
	        commands.removeLast();
	    }
	
	    public void redo() {
	        Command last = commands.getLast();
	        last.execute();
	    }
	}
	
	//任务命令
	public class Command {
	
	    Receiver receiver;
	
	    public Command(Receiver receiver) {
	        this.receiver = receiver;
	    }
	
	    public void execute() {
	        receiver.execute(this);
	    }
	
	    public void cancel(){
	        receiver.cancel(this);
	    }
	}
	
	//任务接收者
	public class Receiver {
	
	    public void execute(Command command) {
	    }
	
	    public void cancel(Command command) {
	    }
	}

关注
打赏
1654938663
查看更多评论
立即登录/注册

微信扫码登录

0.0667s