Le patron de conception Commande

1,363 views

Published on

Présentation rapide du patron Commande, du GoF.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,363
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Le patron de conception Commande

  1. 1. Le patron de conception Commande Gerson Sunyé — Université de Nantes http://sunye.free.fr 1
  2. 2. Objectif • Encapsuler une requête dans un objet, de manière à pouvoir stocker une liste de requêtes, les tracer et permettre l’annulation d’opérations. Gerson Sunyé — Université de Nantes 2
  3. 3. Motivation • Parfois, nous avons besoin d’envoyer des requêtes à des objets, sans connaître l’opération qui est demandée, ni le receveur de cette requête. • Par exemple, un bouton d’une IHM: seuls les clients qui créent et utilisent un bouton peuvent implémenter l’action liée à ce bouton. Gerson Sunyé — Université de Nantes 3
  4. 4. Exemple Application Menu Document open() close() cut() copy() paste() PasteCommand:execute() { document.paste() } Gerson Sunyé — Université de Nantes MenuItem clicked() Command execute() PasteCommand execute() 4
  5. 5. Solution • Transformer les requêtes en objets, dont les classes sont des sous-classes d’une classe abstraite «Command», qui définit une interface pour l’exécution d’opérations. Gerson Sunyé — Université de Nantes 5
  6. 6. Structure /Invoker /Command execute() Command:execute() { receiver.action() } /Receiver /action() /Command execute() Gerson Sunyé — Université de Nantes 6
  7. 7. Compromis d’implémentation • Les commandes peuvent stocker des informations d’état, qui aideront l’annulation ou la création d’un historique d’opérations. • Les commandes peuvent être composées (voir Composite). Gerson Sunyé — Université de Nantes 7
  8. 8. • Parfois, les commandes peuvent implémenter l’opération, sans la déléguer. Gerson Sunyé — Université de Nantes 8
  9. 9. Commande Command 9

×