📅  最后修改于: 2023-12-03 15:41:14.259000             🧑  作者: Mango
纵横开关(Switch)是一种常用的设计模式,属于行为型模式,它通过对不同命令进行封装,使得可以动态地控制程序响应哪些命令。
它将对象封装成一个开关,开关上有几个按钮,每个按钮代表一个命令。当用户按下按钮时,对应的命令就会被执行。
在纵横开关模式中,主要有以下角色:
// 命令接口
public interface Command {
void execute();
}
// 具体命令
public class ConcreteCommand implements Command {
private Receiver receiver;
public ConcreteCommand(Receiver receiver) {
this.receiver = receiver;
}
@Override
public void execute() {
receiver.action();
}
}
// 接收者
public class Receiver {
public void action() {
System.out.println("接收者执行命令");
}
}
// 开关
public class Switch {
private Command command;
public Switch(Command command) {
this.command = command;
}
public void executeCommand() {
command.execute();
}
}
// 客户端
public class Client {
public static void main(String[] args) {
Receiver receiver = new Receiver();
Command command = new ConcreteCommand(receiver);
Switch s = new Switch(command);
s.executeCommand(); // 输出:接收者执行命令
}
}
纵横开关模式通常用于以下场景:
纵横开关模式的优点包括:
纵横开关模式的缺点包括:
纵横开关模式是一种常用的行为型设计模式。它通过将命令和接收者绑定在一起,实现了系统的解耦,提高了程序的灵活性和可扩展性。我们可以将它应用于各种场景,如遥控器、编辑器、动画控制等。