命令模式:灯开灯关

文章目录

UML类图

Command接口

这个你会,只有一个方法,并且接口里面是抽象方法

java 复制代码
package mlms;
/*
 - 这个你会,只有一个方法,并且接口里面是抽象方法
 */
public interface Command {
	public void execute();
}

Invoker.java

  • executeCommand()就是执行命令
    方法的实现:命令.执行
java 复制代码
package mlms;

public class Invoker {
	public Command command;
	
	public void setCommand(Command command){//set方法 你说怎么写?this!
		this.command = command;
	}
	public void executeCommand(){//还没想好怎么写出来的
		//我想想,这是executeCommand方法,就是执行命令方法。那么具体的实现就是 命令.执行
		command.execute();
	}
}

Light.java

方法的实现:见名知意

on 那就输出 灯开了

java 复制代码
package mlms;
public class Light {
	public void on(){//见名知意
		System.out.println("灯开了");
	}
	public void off(){
		System.out.println("灯关了");
	}
}

OnLightCommand.java

  • execute()那么就是执行灯开,
  • 还要一个构造方法
java 复制代码
package mlms;

public class OnLightCommand implements Command {
	public Light light;
	//就是,你声明了对象light,然后没创建就直接用?不合适吧
	//构造方法
	public OnLightCommand(Light light) {
		this.light = light;
	}	
	@Override
	public void execute() {
		// 那么肯定execute 执行的是让灯开的方法
		light.on();
	}	
}

Test.java

新建接收者 命令 请求者 ,设置命令并执行它

java 复制代码
package mlms;
/*
 * 看灯开的四个 理一遍怎么写的
 * 然后其他的就相当是复制粘贴
 */
public class Test {
	public static void main(String[] args) {
		//你得有请求者吧?
		Invoker in = new Invoker();
		//你得有接收者吧
		Light light = new Light();
		//你得有命令吧
		Command c_on = new OnLightCommand(light);
		
		//先设置命令   再执行他
		in.setCommand(c_on);
		in.executeCommand();
	}
}

运行结果

位置

相关推荐
__万波__10 小时前
二十三种设计模式(十四)--命令模式
java·设计模式·命令模式
⑩-2 天前
Java设计模式-命令模式
java·设计模式·命令模式
Yeniden2 天前
Deepeek用大白话讲解 --> 命令模式(企业级场景1,智能家居遥控器2,撤销重做3,宏命令4)
智能家居·命令模式
小灰灰搞电子3 天前
Qt 重写QRadioButton实现动态radioButton源码分享
开发语言·qt·命令模式
小灰灰搞电子4 天前
Qt 实现炫酷锁屏源码分享
开发语言·qt·命令模式
一只小bit4 天前
Qt Widget 控件介绍:覆盖常用属性及API
开发语言·c++·qt·命令模式·cpp
iFlow_AI5 天前
iFlow CLI 实战案例|生产级 Agent 聊天应用——Chatbot
交互·ai编程·命令模式·iflow·iflow cli·iflowcli
道19937 天前
QT 工程中快速实现中英文切换(含动态切换)
命令模式
fpl11167 天前
npm :无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本
前端·vscode·npm·node.js·命令模式
ZouZou老师8 天前
C++设计模式之命令模式:以家具生产为例
c++·设计模式·命令模式