Le patron de conception Commande
Gerson Sunyé — Université de Nantes
http://sunye.free.fr

1
Objectif
•

Encapsuler une requête dans un objet, de manière à
pouvoir stocker une liste de requêtes, les tracer et
permet...
Motivation
•

Parfois, nous avons besoin d’envoyer des requêtes à des
objets, sans connaître l’opération qui est demandée,...
Exemple

Application

Menu

Document
open()
close()
cut()
copy()
paste()

PasteCommand:execute() {
document.paste()
}

Ger...
Solution
•

Transformer les requêtes en objets, dont les classes sont
des sous-classes d’une classe abstraite «Command», q...
Structure

/Invoker

/Command
execute()

Command:execute() {
receiver.action()
}

/Receiver
/action()

/Command
execute()
...
Compromis d’implémentation
•

Les commandes peuvent stocker des informations
d’état, qui aideront l’annulation ou la créat...
•

Parfois, les commandes peuvent implémenter
l’opération, sans la déléguer.

Gerson Sunyé — Université de Nantes

8
Commande
Command

9
Prochain SlideShare
Chargement dans…5
×

Le patron de conception Commande

1 492 vues

Publié le

Présentation rapide du patron Commande, du GoF.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 492
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×