命令模式-大话设计模式

简介: 命令模式-大话设计模式

一、介绍

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

二、代码实现

 

//接受者
public class Receiver {
    public void action() {
        System.out.println("执行请求");
    }
}
//抽象命令类
public abstract class Command {
    //接收者
    protected Receiver receiver;
 
    public Command(Receiver receiver) {
        this.receiver = receiver;
    }
 
    //执行命令
    public abstract void excuteCommand();
}
 
//具体命令类
public class ConcreteCommand extends Command{
    public ConcreteCommand(Receiver receiver) {
        super(receiver);
    }
 
    @Override
    public void excuteCommand() {
        receiver.action();
    }
}
 
//调用方
public class Invoker {
    private Command command;
 
    public void setCommand(Command command) {
        this.command = command;
    }
 
    public void excuteCommand() {
        command.excuteCommand();
    }
}

测试:

public class Client {
    public static void main(String[] args) {
        //接收者
        Receiver receiver = new Receiver();
        //命令给接收者
        Command command = new ConcreteCommand(receiver);
        //调用方
        Invoker invoker = new Invoker();
        invoker.setCommand(command);
        //执行命令
        invoker.excuteCommand();
    }
}

 

相关文章
|
7月前
|
设计模式 UED
二十三种设计模式:解锁软件开发的神器:命令模式与撤销重做功能
二十三种设计模式:解锁软件开发的神器:命令模式与撤销重做功能
182 0
|
3月前
|
设计模式 存储 算法
Java设计模式-命令模式(16)
Java设计模式-命令模式(16)
|
4月前
|
设计模式 存储 Java
【十二】设计模式~~~行为型模式~~~命令模式(Java)
文章详细介绍了命令模式(Command Pattern),这是一种对象行为型模式,用于将请求封装成对象,实现请求发送者与接收者的解耦,从而降低系统耦合度、提高灵活性,并支持命令的排队、记录、撤销和恢复操作。通过案例分析、结构图、时序图和代码示例,文章展示了命令模式的组成部分、实现方式和应用场景,并讨论了其优点、缺点和适用情况。
|
5月前
|
设计模式 JavaScript API
js设计模式【详解】—— 命令模式
js设计模式【详解】—— 命令模式
48 6
|
6月前
|
设计模式 Java uml
必知的技术知识:JAVA【设计模式】命令模式
必知的技术知识:JAVA【设计模式】命令模式
33 0
|
6月前
|
设计模式 Java
Java设计模式之命令模式详解
Java设计模式之命令模式详解
|
6月前
|
设计模式
设计模式之命令模式
设计模式之命令模式
|
7月前
|
设计模式 Java 调度
【设计模式系列笔记】命令模式
命令模式是一种行为设计模式,它将请求封装成一个对象,从而允许使用不同的请求、队列或日志请求参数化客户端对象,同时支持撤销操作。
74 1
|
7月前
|
设计模式 Java 调度
小谈设计模式(24)—命令模式
小谈设计模式(24)—命令模式
|
7月前
|
设计模式 存储 Java
【搞懂设计模式】命令模式:从遥控器到编程的妙用!
【搞懂设计模式】命令模式:从遥控器到编程的妙用!
80 0