Exemples d’utilisation : La commande est très répandue en Java. Elle est souvent utilisée comme une alternative aux callbacks, pour paramétrer les éléments d’une UI avec des actions. Elle est également utilisée pour mettre des tâches dans une file d’attente, suivre un historique de traitements, etc.
Voici quelques exemples tirés des bibliothèques principales de Java :
Identification : Si vous voyez un ensemble de classes qui représentent des actions spécifiques (comme « Copier », « Coller », « Envoyer », « Imprimer », etc.), il s’agit peut-être d’un patron commande. Ces classes doivent implémenter la même interface ou classe abstraite. Les commandes doivent implémenter elles-mêmes les actions pertinentes ou déléguer les tâches à des objets séparés (les récepteurs). La dernière pièce du puzzle est l’identification d’un demandeur. Cherchez une classe qui accepte des objets commande dans les paramètres de ses méthodes ou de son constructeur.
Commandes d’éditeur de texte et annulation
Dans cet exemple, chaque interaction de l’utilisateur avec l’éditeur de texte crée de nouveaux objets commande. Après avoir lancé toutes ses actions, une commande est poussée dans la pile de l’historique.
Pour pouvoir lancer le traitement d’annulation, l’application prend la dernière commande exécutée de l’historique et soit elle exécute l’action inverse, soit elle restaure l’état passé de l’éditeur qui a été sauvegardé par cette commande.
commands
commands/Command.java: Commande de base abstraite
commands/CopyCommand.java: Copie le texte sélectionné dans le presse-papiers
commands/PasteCommand.java: Colle le texte depuis le presse-papiers
commands/CutCommand.java: Coupe le texte dans le presse-papiers
commands/CommandHistory.java: Historique des commandes