Conception de lois de commande structurées (hiérarchisées ...
Le patron de conception Commande
Click here to load reader
-
Upload
gerson-sunye -
Category
Technology
-
view
589 -
download
5
description
Transcript of Le patron de conception Commande
Le patron de conception Commande
Gerson Sunyé — Université de Nantes http://sunye.free.fr
�1
Gerson Sunyé — Université de Nantes
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.
�2
Gerson Sunyé — Université de Nantes
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.
�3
Gerson Sunyé — Université de Nantes
Exemple
open()close()cut()copy()paste()
Document
execute()Command
execute()PasteCommand
Menuclicked()
MenuItemApplication
PasteCommand:execute() { document.paste()}
�4
Gerson Sunyé — Université de Nantes
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.
�5
Gerson Sunyé — Université de Nantes
Structure
/Invoker
/action()/Receiver
execute()/Command
execute()/Command
Command:execute() { receiver.action()}
�6
Gerson Sunyé — Université de Nantes
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).
�7
Gerson Sunyé — Université de Nantes
• Parfois, les commandes peuvent implémenter l’opération, sans la déléguer.
�8
Commande
Command
�9