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

Made with Slides.com