命令模式:灯开灯关

文章目录

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

运行结果

位置

相关推荐
码农客栈4 天前
qt QSqlTableModel的简单使用(增、删、改、查)
开发语言·qt·命令模式
hu_1438 天前
Qt实战项目——贪吃蛇
开发语言·qt·命令模式
翠花也老了9 天前
命令模式(Command Pattern)
java·设计模式·命令模式
S-X-S9 天前
模板方法模式和命令模式
华为·命令模式·模板方法模式
马·坚10 天前
渗透测试基础(二) Linux+Win常用命令介绍
命令模式
不会倒的鸡蛋10 天前
Linux常用命令大全
linux·命令模式
Conce-lin13 天前
【设计模式之命令模式 -- C++】
c++·设计模式·命令模式
光想着13 天前
C++240618
开发语言·c++·命令模式
科学的发展-只不过是读大自然写的代码13 天前
qt 简单实验 用代码添加控件
开发语言·qt·命令模式
一禅(OneZen)14 天前
最新OPPO 真我手机 一加手机 使用adb命令永久关闭系统更新教程
android·windows·adb·智能手机·mac·命令模式