命令模式:灯开灯关

UML类图

Command接口

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

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

Invoker.java

  • executeCommand()就是执行命令
    方法的实现:命令.执行
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 那就输出 灯开了

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

OnLightCommand.java

  • execute()那么就是执行灯开,
  • 还要一个构造方法
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

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


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

运行结果

在这里插入图片描述

位置

在这里插入图片描述

相关推荐

  1. P1161 题解

    2024-06-15 03:24:02       38 阅读
  2. 问题 C语言

    2024-06-15 03:24:02       21 阅读
  3. 洛谷 P1161 位运算

    2024-06-15 03:24:02       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 03:24:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 03:24:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 03:24:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 03:24:02       18 阅读

热门阅读

  1. 【python】邮箱正则验证

    2024-06-15 03:24:02       5 阅读
  2. Spring @AliasFor用法

    2024-06-15 03:24:02       8 阅读
  3. 深入了解各种取址方式:概念、原理及实例

    2024-06-15 03:24:02       9 阅读
  4. MySQL通配符和正则表达式

    2024-06-15 03:24:02       8 阅读
  5. CSS选择器种类总结

    2024-06-15 03:24:02       8 阅读
  6. 腾讯元宝APP:AIGC大模型的新篇章

    2024-06-15 03:24:02       8 阅读
  7. mysql之数据聚合

    2024-06-15 03:24:02       4 阅读
  8. 协程库——面试问题

    2024-06-15 03:24:02       5 阅读
  9. MPLS的配置

    2024-06-15 03:24:02       6 阅读