Java td/tp n°8 (suite)

publicité
Conception et programmation orientées objets avancées
Le design pattern Commande (Command)
Note : les problèmes proposés sont volontairement simples afin que vous vous focalisiez sur
la conception (architecture) logicielle et non sur les détails techniques. Vous simulerez
certaines situations demandées par des messages (ex : "le cuisinier prépare le plat")
Problème 1
On souhaite créer un gestionnaire de taches capable d'enregistrer et exécuter des taches
quelconques. Une tâche inclura un destinataire capable de l'exécuter et les instructions qui lui
sont adressées.
UML (diagramme des classes)
On dispose du diagramme de classes suivant qui décrit les services rendus par le gestionnaire
de taches, ainsi qu'un afficheur et un solveur d'équation du second degré.
GestionnaireTaches
+enregistrerTache(t)
+retirerTache(t)
+executerLaTache(t)()
+executerUneTache()
+executerToutesTaches()
Afficheur
+setMessage(unMessage:String)
+affiche()
l'opération executerUneTache()
exécute la tache la plus ancienne
Equation2
+Equation2()
+init()
+calculeDeterminant()
+calculeRacines()
+afficheSolutions()
l'opération init()
demande les coefficients
(a, b, c) de l'équation
Un client veut utiliser le gestionnaire de taches pour afficher le message "bonjour", le
message "au revoir", et résoudre une équation du second degré.
Dans le cadre du design pattern Commande :
1) A partir de l'énoncé, préciser qui est l'invocateur et qui sont les receveurs ? quelles sont
les commandes ?
2) Compléter le diagramme des classes qui modélise ce problème.
Java
Traduire le diagramme des classes UML en java, sachant que vous disposez des classes
Afficheur et Equation2 téléchargeables ici :
http://lipn.univ-paris13.fr/~charnois/S3/files/commande/Afficheur.java
http://lipn.univ-paris13.fr/~charnois/S3/files/commande/Equation2.java
D. Bouthinon, T Charnois
1/2
Problème 2
Un restaurant emploie un gestionnaire de commandes pour enregistrer les commandes faites
par les clients, et les transmettre au cuisinier qui les prépare.
UML (diagramme des classes)
On dispose du diagramme de classes suivant :
GestionnaireCommande
Restaurant
+enregistrerEntree(Commande)
+enregistrerPlat(Commande)
+enregistrerDessert(Commande)
+activerEntree()
+activerPlat()
+activerDessert()
Cuisinier
+preparerEntree()
+preparerPlat()
+preparerDessert()
Dans le cadre du design pattern Commande :
1) Préciser qui est l'invocateur et qui est le receveur et qui est le client de l'invocateur ?
2) Compléter en totalité le diagramme en distinguant les commandes d'entrée, les
commandes de plat et les commandes de dessert ? Décrivez les requêtes qu'elles
encapsulent.
Java
Traduire les diagrammes des classes UML en java.
D. Bouthinon, T. Charnois
2/2
Téléchargement