Design pattern commande
Patrons de conception du GoF
Les patrons de conception ont été formellement reconnus en 1994 suite à la publication du livre Design patterns - elements of reusable software, co-écrit par quatre auteurs : Gamma, Helm, Johnson et Vlissides (Gang of Four - GoF; en français la bande des quatre). Ce livre, devenu un best-seller, décrit 23 patrons « patrons GoF » et comment s'en servir.
On distingue trois familles de patrons de conception selon leur utilisation :
- Patrons de création
- Patrons de structure
- Patrons de comportement
Patrons de conception commande
Commande est un patron de conception de type comportemental
qui encapsule la notion d'invocation.
Il permet de séparer complètement le code initiateur de l'action, du code de l'action elle-même.
Ce patron de conception est souvent utilisé dans les interfaces graphiques où, par exemple, un item de menu peut être connecté à différentes Commandes de façons à ce que l'objet d'item de menu n'ait pas besoin de connaître les détails de l'action effectuée par la Commande.
Symptômes
Les objets possèdent trop de méthodes publiques à l'usage d'autres objets.
L'interface est inexploitable et on la modifie tout le temps.
Les noms des méthodes deviennent de longues périphrases.
Diagramme de classes
Utilisations
Comportement transactionnel
La méthode d'annulation est appelée rollback() et permet de revenir en arrière si quelque chose se passe mal au cours d'une transaction (un ensemble de commandes). Exemples : installateurs de programmes, modification de base de données.
Barre de progression
Si chaque Commande possède une méthode d'estimation de durée, il est possible de représenter la progression de l'exécution d'un ensemble de tâches (Commandes).
Menu et boutons (interface graphique)
En Swing et Delphi, un objet Action est une Commande à laquelle on peut associer un raccourci clavier, une icône, un texte d'info-bulle ...
Wizards
Pour implémenter les boîtes de dialogue de type Wizard, une instance de Commande est créée. Chaque fois que l'utilisateur passe à la page suivante avec le bouton "Suivant" ("Next" en anglais), les valeurs entrées sont enregistrées dans la Commande. Le bouton "Terminer" ("Finish" en anglais) provoque l'exécution de la Commande.
Bibliographie
wikibooks.org:patron de conception Ce wikilivre porte l'indice CDU suivant :
6/68/681/681.3/681.3.0
http://fr.wikibooks.org/wiki/Patrons_de_conception
Design pattern commande
By Wael Chargui
Design pattern commande
- 563