设计模式之命令模式

1.命令接收者
public abstract class Receiver {
    public abstract void doSomething();
}

public class Receiver1 extends Receiver {
    @Override
    public void doSomething() {
        System.out.println("hello1");
    }
}

public class Receiver2 extends Receiver {
    @Override
    public void doSomething() {
        System.out.print("hello2");
    }
}

2.命令
public abstract class Command {
    public abstract void execute();
}

public class Command1 extends Command {
    private Receiver receiver;

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

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

public class Command2 extends Command {

    private Receiver receiver;

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

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

3.调用者
public class Invoker {

    private Command command;

    public void setCommand(Command command) {
        this.command = command;
    }

    public void action() {
        command.execute();
    }
}

public class Main {
    public static void main(String[] args) {
        Receiver receiver = new Receiver1();
        Command command = new Command1(receiver);
        Invoker invoker = new Invoker();
        invoker.setCommand(command);
        invoker.action();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、命令模式的概念 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transactio...
    brzhang阅读 366评论 0 0
  • 模拟需求 现在需要设计一个遥控器。厂商的类可能是这样的: 这些类看起来不少,而且接口各有差异,而且这些类以后还会越...
    yaSecrets阅读 309评论 0 0
  • 命令模式 总结成一句话就是行为的请求者和行为的实现者分离开,把"命令"以对象形式将两者联系起来的模式。命令模式的优...
    大叔龙阅读 532评论 0 1
  • 命令模式 现在多数应用都有撤销操作。虽然难以想象,但在很多年里,任何软件中确实都不存在撤销操作。撤销操作是在197...
    英武阅读 1,461评论 0 50
  • x本文是对设计模式之禅一书中命令模式一章的总结与整理。 1. 定义 学习任何一个东西,先把概念搞清楚是第一要务。命...
    北风一叶阅读 349评论 0 2