mode commande est un modèle de conception comportemental qui convertit une requête en un objet distinct contenant toutes les informations liées à la requête. Cette transformation vous permet de paramétrer des méthodes basées sur différentes requêtes, requêtes de retard ou de file d'attente, et d'implémenter des opérations annulables.
Structure du mode commande
expéditeur (Expéditeur) - également connu sous le nom de "Invoker" - la classe est responsable de l'initialisation de la requête, qui doit contenir une variable membre pour stocker une référence à l'objet de commande. L'expéditeur déclenche la commande sans envoyer de requête directement au destinataire. Notez que l'expéditeur n'est pas responsable de la création de l'objet de commande : il obtient généralement une commande pré-générée du client via un constructeur.
CommandeL'interface (Commande) déclare généralement uniquement une méthode pour exécuter la commande.
Commandes spécifiques (Concrete Commands) mettra en œuvre différents types de requêtes. La commande spécifique elle-même ne termine pas le travail, mais délègue l'appel à un objet de logique métier. Mais pour simplifier le code, ces classes peuvent être fusionnées. Les paramètres requis pour recevoir la méthode d'exécution de l'objet peuvent être déclarés comme variables membres de commandes spécifiques. Vous pouvez rendre l'objet de commande immuable et autoriser uniquement l'initialisation de ces variables membres via le constructeur.
destinataire La classe (Récepteur) contient une partie de la logique métier. Presque n’importe quel objet peut servir de récepteur. La plupart des commandes ne traitent que des détails sur la manière de transmettre la demande au destinataire, et le destinataire effectuera lui-même le travail lui-même.
client (Client) créera et configurera des objets de commande spécifiques. Le client doit transmettre tous les paramètres de la requête, y compris l'entité destinataire, au constructeur de la commande. Par la suite, la commande générée peut être associée à un ou plusieurs expéditeurs.