设计模式之命令模式
组织成员
- 客户端:负责收集并执行命令
- 命令接口:定义命令执行
- 命令实现: 获取被执行对象,调用被执行对象 对应实现
- 被执行的对象: 对象自身的功能 加血 死亡
代码结构
@Data
public class Client {
private List<Command> commandWaitExec;
public Client() {
this.commandWaitExec = new ArrayList<>();
}
public void addExecCommand(Command command) {
this.commandWaitExec.add(command);
}
public void execCommand(){
for (Command command : commandWaitExec) {
command.execute();
}
this.commandWaitExec.clear();
}
}
public interface Command {
void execute();
}
@Data
@AllArgsConstructor
public class CommandKill implements Command {
private User user;
@Override
public void execute() {
user.kill();
}
}
@Data
@AllArgsConstructor
public class CommandRecover implements Command{
private User user;
@Override
public void execute() {
user.health();
}
}
public class User {
public void kill(){
System.out.println("飞翔的小板鲫 被神秘力量 磨灭了痕迹");
}
public void health(){
System.out.println("飞翔的小板鲫 被神秘力量 恢复了状态");
}
}
User user = new User();
CommandKill kill = new CommandKill(user);
CommandRecover recover = new CommandRecover(user);
Client client = new Client();
client.addExecCommand(kill);
client.addExecCommand(recover);
client.execCommand();
飞翔的小板鲫 被神秘力量 磨灭了痕迹
飞翔的小板鲫 被神秘力量 恢复了状态