zoukankan      html  css  js  c++  java
  • command模式

    1、核心意图:
    将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求
    排队或记录请求日志,以及支持可撤消的操作。

    2、command模式构成:
    • 客户角色(Client):创建一个具体命令对象,并确定其接收者
    • 命令角色(Command):声明一个给所有具体命令类的抽象接口。这是一个抽象角色,通常由一个接口 或抽象类实现
    • 具体命令角色(ConcreteCommand):定义一个接收者和行为之间的弱耦合,实现execute方法,负责调用接收者的相应操作
    • 请求者角色(Invoker):负责调用命令对象执行请求。
    • 接收者角色(Receiver):负责具体实施和执行一个请求

    3、生活例子:


    4、代码实现:
    Client.java 例子中的”顾户“
    Java代码 复制代码 收藏代码
    1. public class Client
    2. {
    3. public static void main(String[] args)
    4. {
    5. Receiver receiver = new Receiver();
    6. Command command = new ConcreteCommand(receiver);
    7. Invoker invoker = new Invoker(command);
    8. invoker.doInvokerAction();
    9. }
    10. }


    Command.java 例子中的”订单“
    Java代码 复制代码 收藏代码
    1. public interface Command
    2. {
    3. public void execute();
    4. }


    ConcreteCommand.java 例子中的”订单“的相应操作
    Java代码 复制代码 收藏代码
    1. public class ConcreteCommand implements Command
    2. {
    3. private Receiver receiver;
    4. public ConcreteCommand(Receiver receiver)
    5. {
    6. this.receiver = receiver;
    7. }
    8. @Override
    9. public void execute()
    10. {
    11. receiver.doAction();
    12. }
    13. }


    Invoker.java 例子中的”服务员“
    Java代码 复制代码 收藏代码
    1. public class Invoker
    2. {
    3. private Command command;
    4. public Invoker(Command command)
    5. {
    6. this.command = command;
    7. }
    8. public void doInvokerAction()
    9. {
    10. command.execute();
    11. }
    12. }


    Receiver.java 例子中的”厨师“
    Java代码 复制代码 收藏代码
    1. public class Receiver
    2. {
    3. public void doAction()
    4. {
    5. System.out.println("执行任务!");
    6. }
    7. }  
  • 相关阅读:
    AUPE学习第八章------进程控制
    软件工程中的一些图
    java_web用户的自动登录模块的实现
    opencv安装/usr/bin/ld: warning: libpcre.so.1, needed by //home/qian/anaconda3/lib/libglib-2.0.so.0, not found (try using -rpath or -rpath-link)问题
    ubuntu 安装使用多版本opencv
    基于运动学模型的模型预测控制
    粒子群滤波
    深度学习环境搭建
    安装uWebSocketIO
    最小二乘原理(3)——递归最小二乘
  • 原文地址:https://www.cnblogs.com/bjanzhuo/p/3576061.html
Copyright © 2011-2022 走看看