Commande en Go
La Commande est un patron de conception comportemental qui convertit des demandes ou des traitements simples en objets.
Cette conversion permet de différer ou d’exécuter à distance des commandes, de gérer un historique de commandes, etc.
Exemple conceptuel
Regardons un peu la commande dans le contexte d’une télévision. Une TV peut être allumée avec :
- Le bouton ON de la télécommande,
- Le bouton ON du téléviseur.
Nous pouvons commencer par l’implémentation de l’objet commande ON en prenant la TV comme récepteur. Lorsque la méthode execute
est appelée sur cette commande, elle finira par lancer la fonction TV.on
. La dernière partie consiste à définir un demandeur. En réalité, nous allons avoir deux demandeurs : la télécommande et le téléviseur. Ils seront tous deux imbriqués dans l’objet commande ON.
Vous remarquerez que nous avons imbriqué la même requête dans plusieurs demandeurs, comme nous le ferions avec d’autres commandes. Créer un objet commande séparé nous permet de bénéficier du découplage entre la logique de l’UI et celle du métier. Vous n’avez pas besoin de développer différents handlers pour chaque demandeur. L’objet commande contient toutes les informations nécessaires dont il a besoin pour fonctionner. Il peut par conséquent être utilisé pour différer l’exécution.