命令模式:灯开灯关

文章目录

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

运行结果

位置

相关推荐
ttod_qzstudio8 天前
【软考设计模式】命令模式:请求封装与调用接收解耦的精讲
设计模式·命令模式
其实防守也摸鱼9 天前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
其实防守也摸鱼11 天前
运维--自动化与容器技术(现代运维标配)
linux·运维·服务器·容器·自动化·安全威胁分析·命令模式
24计网1王仔寿18 天前
Linux运维与云计算全栈系统化学习指南(Shell+虚拟化+OpenStack+Docker+公私云实战)
linux·课程设计·数据库开发·微信公众平台·neo4j·命令模式·sequoiadb
金融支付架构实战指南1 个月前
CQRS + 命令模式 + 事件驱动 + 数据库持久化
数据库·ddd·命令模式·领域驱动模型
金融支付架构实战指南1 个月前
CQRS 命令 vs GOF 命令模式
ddd·命令模式·领域驱动模型
hoiii1871 个月前
Qt 实现屏幕截图功能
开发语言·qt·命令模式
Jun6261 个月前
QT(2)-通过管道关联CMD
开发语言·qt·命令模式
Drone_xjw1 个月前
Qt国际化多语言配置详解-入门到精通
开发语言·qt·命令模式
多加点辣也没关系2 个月前
设计模式-命令模式
设计模式·命令模式