zoukankan      html  css  js  c++  java
  • 命令模式

    命令模式(Command)
    把一个请求或者操作封装到一个对象中,从而达到用不同的请来对客户端进行参数化的目标;对请求排队或记录请求日志,以及支持可撤消的操作。

    命令模式的构成
    1.客户角色:创建一个具体命令对象,并确定其所接收者

    //客户角色
    public class Client {
     public static void main(String[] args) {
      Receiver receiver=new Receiver();
      Command command=new ConcreteCommand(receiver);
      Invoker invoker=new Invoker(command);
      invoker.doInvokerAction();
     }
    }
    2.命令角色:声明一个给所有具体命令类的抽象角色,通常由一个接口或抽象类实现

    //命令角色
    public interface Command {
     public void execute();
    }
    3.具体命令角色:定义一个接收者和行为之间的弱耦合,实现execute方法,负责调用接收者的相应操作

    //具体命令角色
    public class ConcreteCommand implements Command {
     private Receiver receiver;
     public ConcreteCommand(Receiver receiver){
      this.receiver=receiver;
     }
     @Override
     public void execute() {
      receiver.doAction();
     }
    }
    4.请求者角色:负责调用命令对象执行请求

    //请求者角色
    public class Invoker {
     private Command command;
     public Invoker(Command command){
      this.command=command;
     }
     public void doInvokerAction(){
      command.execute();
     }
    }
    5.接收者角色:负责具体实施和执行一个请求

    //接收者角色
    public class Receiver {
     public void doAction(){
      System.out.println("执行操作!");
     }
    }

  • 相关阅读:
    Python RabbitMQ
    对于一些概念的澄清
    Python没有执行__init__
    python中的gil是什么?
    linux命令行快捷键
    关于异步:再次思考和澄清
    greenlet代码解读
    关于协程
    设计模式-重复重复的设计模式
    组合模式-虚有其表的模式
  • 原文地址:https://www.cnblogs.com/mingforyou/p/2288688.html
Copyright © 2011-2022 走看看