命令模式:灯开灯关

文章目录

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();
	}
}

运行结果

位置

相关推荐
会员果汁5 小时前
19.设计模式-命令模式
设计模式·命令模式
羊群智妍16 小时前
2026GEO监测工具精选:免费AI搜索优化监测工具实用指南
百度·微信·命令模式·新浪微博·segmentfault
Engineer邓祥浩4 天前
设计模式学习(16) 23-14 命令模式
学习·设计模式·命令模式
小码过河.5 天前
设计模式——命令模式
设计模式·命令模式
刀法孜然7 天前
23种设计模式 3 行为型模式 之3.7 command 命令模式
设计模式·命令模式
JavaBoy_XJ25 天前
行为型-命令模式
命令模式
梵豪1 个月前
使用命令模式实现《植物大战僵尸》兵营生产系统
命令模式
stevenzqzq1 个月前
Compose重组的概念1
命令模式·compose
老朱佩琪!1 个月前
Unity命令模式
unity·游戏引擎·命令模式
阿拉斯攀登1 个月前
设计模式:Spring MVC 中命令模式的核心映射与设计逻辑
spring·设计模式·mvc·命令模式