Android设计模式之命令模式

通过将一系列的操作封装成一个命令对象,方便执行,同时也能够很好的让我们进行一些操作回滚,用来记录是否执行过该操作等问题。

我们将某些操作封装成一个Command命令,每个命令对应一个操作,如下图所示:

这里写图片描述

Command

public interface Command {
    void execute();
}

ConcreteCommand

public class ConcreteCommand implements Command {

    private Receiver receiver;

    public ConcreteCommand(Receiver receiver) {
        this.receiver = receiver;
    }

    @Override
    public void execute() {
        this.receiver.action();
    }

}

Receiver

public class Receiver {

    public void action() {
        System.out.println("执行动作");
    }

}

这样我们就可以通过命令的方式来对我们的操作进行管理了。

上面已经把我们的操作抽象为命令的方式,每个命令对应一个行为操作,下面就是对命令的触发了。我们通过一个单独的类来对命令进行管理和触发。

这里写图片描述

Invoker

public class Invoker {
    private Command command;

    // 这里凡是继承 Command 接口的类都可以以参数的形式传入
    public void setCommand(Command command) {
        this.command = command;
    }

    public void action() {
        this.command.execute(); // 而所有继承自 Command 接口的类都必须实现 execute() 这个方法
    }
}

这样就形成了整个命令模式。

Client

public class Client {
    public static void main(String args[]) {
        Receiver receiver = new Receiver();
        Command command = new ConcreteCommand(receiver);
        Invoker invoker = new Invoker();
        invoker.setCommand(command);
        invoker.action();
    }
}

Android中的命令模式

Android中的Runnable就是一种命令模式。例如:

new Thread(new Runnable() {

     @Override
     public void run() {

     }
 }).start();

这里写图片描述

跟上面相比,命令的行为这里直接写在命令中,并没有单独为命令写一个行为对象。

欢迎关注微信公众号:DroidMind
精品内容独家发布平台


呈现与博客不一样的技术干货

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值