命令模式

半腔热情 提交于 2020-02-07 11:30:07

通用receiver类

/**
 * 通用receiver类
 */
public abstract class Receiver {

    public abstract void doSomething();

}

具体receiver类

/**
 * 具体receiver类
 */
public class ConcreteReciver1 extends Receiver {
    @Override
    public void doSomething() {

    }
}

抽象的Command类

/**
 * 抽象的Command类
 */
public abstract class Command {

    public abstract void execute();


}

具体的command类

/**
 * 具体的command类
 */
public class ConcreteCommand1 extends Command {

    private Receiver receiver;

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

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

调用者Invoker类

/**
 * 调用者Invoker类
 */
public class Invoker {

    private Command command;

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

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

public class Client {

    public static void main(String[] args) {

        Invoker invoker = new Invoker();
        Receiver receiver = new ConcreteReciver1();

        Command command = new ConcreteCommand1(receiver);

        invoker.setCommand(command);
        invoker.action();
    }
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!