Maison >Java >javaDidacticiel >Quels sont les scénarios d'application du mode commande dans le framework Java ?
Le mode Commande encapsule les opérations dans des objets indépendants, les dissocie des objets et améliore l'évolutivité et la réutilisabilité du code. Dans les frameworks Java, on le retrouve couramment dans l'architecture MVC, les filtres de servlets, la gestion des transactions et le traitement des messages. Un exemple pratique montre comment utiliser Java pour implémenter le mode commande afin de contrôler l'allumage et l'extinction des lumières dans le salon et la cuisine via une télécommande.
Scénarios d'application du modèle de commande dans le framework Java
Le modèle de commande est un modèle de conception qui vous permet d'encapsuler des opérations dans des objets séparés. Cela permet de découpler les opérations de l'objet sur lequel l'opération est demandée. Ceci est utile pour créer du code évolutif et réutilisable.
Dans le framework Java, le modèle de commande est utilisé dans divers scénarios, notamment :
Cas pratique
Ce qui suit est un exemple simple d'utilisation de Java pour implémenter le modèle de commande :
interface Command { void execute(); } class LightOnCommand implements Command { private final Light light; public LightOnCommand(Light light) { this.light = light; } @Override public void execute() { light.turnOn(); } } class LightOffCommand implements Command { private final Light light; public LightOffCommand(Light light) { this.light = light; } @Override public void execute() { light.turnOff(); } } class Light { public void turnOn() { System.out.println("Light turned on."); } public void turnOff() { System.out.println("Light turned off."); } } class RemoteControl { private final Command[] onCommands; private final Command[] offCommands; public RemoteControl() { onCommands = new Command[7]; offCommands = new Command[7]; Command noCommand = new NoCommand(); for (int i = 0; i < 7; i++) { onCommands[i] = noCommand; offCommands[i] = noCommand; } } public void setCommand(int slot, Command onCommand, Command offCommand) { onCommands[slot] = onCommand; offCommands[slot] = offCommand; } public void onButtonWasPressed(int slot) { onCommands[slot].execute(); } public void offButtonWasPressed(int slot) { offCommands[slot].execute(); } private class NoCommand implements Command { @Override public void execute() {} } } public class CommandPatternDemo { public static void main(String[] args) { RemoteControl remoteControl = new RemoteControl(); Light livingRoomLight = new Light(); Light kitchenLight = new Light(); LightOnCommand livingRoomLightOnCommand = new LightOnCommand(livingRoomLight); LightOffCommand livingRoomLightOffCommand = new LightOffCommand(livingRoomLight); LightOnCommand kitchenLightOnCommand = new LightOnCommand(kitchenLight); LightOffCommand kitchenLightOffCommand = new LightOffCommand(kitchenLight); remoteControl.setCommand(0, livingRoomLightOnCommand, livingRoomLightOffCommand); remoteControl.setCommand(1, kitchenLightOnCommand, kitchenLightOffCommand); remoteControl.onButtonWasPressed(0); remoteControl.offButtonWasPressed(0); remoteControl.onButtonWasPressed(1); remoteControl.offButtonWasPressed(1); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!