命令模式

命令模式

命令(Command)模式:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。

案例

一个命令执行者可以执行多个命令

java 复制代码
public class Receiver {
    public void eat(){
        System.out.println("正在吃饭。。。");
    }

    public void sleep(){
        System.out.println("开始睡觉。。");
    }
}
java 复制代码
public interface Commond {
    void execute();
}
java 复制代码
public class EatCommond implements Commond{

    private Receiver receiver = new Receiver();
    @Override
    public void execute() {
        receiver.eat();
    }
}
java 复制代码
public class SleepCommond implements Commond{
    private Receiver receiver = new Receiver();
    @Override
    public void execute() {
        receiver.sleep();
    }
}

命令发出者只需要设置命令就能执行

java 复制代码
public class Invoker {
    Commond commond;
    public void call(){
        commond.execute();
    }

    public void setCommond(Commond commond){
        this.commond = commond;
    }
}
相关推荐
invicinble32 分钟前
关于学习技术栈的思考
java·开发语言·学习
json{shen:"jing"}1 小时前
分割回文串-暴力法
java·算法
没有bug.的程序员1 小时前
Maven 进阶进阶:依赖优化内核、多模块构建艺术与“依赖地狱”自愈指南
java·maven·构建·多模块·依赖优化
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 基于Java的外卖点餐网站为例,包含答辩的问题和答案
java·开发语言
追随者永远是胜利者1 小时前
(LeetCode-Hot100)4. 寻找两个正序数组的中位数
java·算法·leetcode·职场和发展·go
追随者永远是胜利者1 小时前
(LeetCode-Hot100)2. 两数相加
java·算法·leetcode·go
前路不黑暗@2 小时前
Java项目:Java脚手架项目通用基类和常量类的封装(九)
java·spring boot·笔记·学习·spring cloud·maven·intellij-idea
Mr YiRan2 小时前
C++语言类中各个重要函数原理
java·开发语言·c++
chilavert3182 小时前
技术演进中的开发沉思-370:final 关键字(上)
java·开发语言
一切顺势而行2 小时前
python 文件目录操作
java·前端·python