文章目录
- UML类图
- Command接口
- Invoker.java
- Light.java
- OnLightCommand.java
- Test.java
- 运行结果
- 位置
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;} @Overridepublic 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();}
}