设计模式学习—19命令模式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_33334951/article/details/102677934

命令模式

UML

命令模式

解释说明

  • 命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;支持请求排队、记录请求日志、支持可撤销操作。

代码实现

  • Command.class
public interface Command {
    void execute();
}
  • Receiver.class
package learn19;

public class Receiver {
    public void action() {
        System.out.println("Receiver执行!");
    }
}
  • ConcreteCommand.class
package learn19;

public class ConcreteCommand implements Command {
    private Receiver receiver;

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

    @Override
    public void execute() {
        receiver.action();
    }
}
  • Invoker.class
package learn19;

public class Invoker {
    private Command command;

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

    public void executeCommmand() {
        command.execute();
    }
}
  • Main.class
import learn19.*;

public class Main {

    public static void main(String[] args) throws Exception {
        Receiver r = new Receiver();
        ConcreteCommand c = new ConcreteCommand(r);
        Invoker i = new Invoker();
        i.setCommand(c);
        i.executeCommmand();
    }
}

参考资料

  • 大话设计模式

猜你喜欢

转载自blog.csdn.net/qq_33334951/article/details/102677934