La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV MVC Module Java Expert.

Présentations similaires


Présentation au sujet: "CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV MVC Module Java Expert."— Transcription de la présentation:

1 CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV MVC Module Java Expert

2 Module UV Java Page 2 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Module Java n Vue densemble du langage Java n Le langage Java : syntaxe et sémantique n Programmation multi-tâche : les threads n Accéder aux bases de données n Composants réutilisables : le modèle MVC n Développement Client/Serveur n Présentation dun IDE : WSAD / Forté / JBuilder n Les serveurs dapplications J2EE n Les Enterprise JavaBeans n Ré-ingénierie dapplications Java

3 Module UV Java Page 3 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Vue globale de MVC Dans le paradigme MVC lentrée utilisateur, la modélisation du monde extérieur, laspect visuel présenté lutilisateur sont explictement séparés et gérés par trois types dobjet, chacun spécialisé dans sa tâche. [Burbeck 92]

4 Module UV Java Page 4 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Buts de MVC n L architecture Model-View-Controller a pour objectif d organiser une application interactive en séparant : –les données –la représentation des données –le comportement de l application

5 Module UV Java Page 5 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Historique de MVC n Créé dans la fin des années 1970 par Trygve Reenskaug au Xerox PARC n Applications aux GUI (Graphical User Interfaces) n Première version en 1980 utilise une sous classe pour chaque vue à adapter au modèle n Vues en 1983 ont spécifié les messages à envoyer au model avec des symboles

6 Module UV Java Page 6 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Historique de MVC (suite) n ObjectWorks en 1989 a utilisé les détenteurs de valeurs n In 1992 VisualWorks a remplacé ObjectWorks et a utilisé de composants de fine granularité GUI spécifiant linterface MVC. n Visualworks a ajouté la gestion des événements par des controllers en 1998

7 Module UV Java Page 7 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Structure de MVC n Le modèle représente la structure des données dans l application et les opérations spécifiques sur ces données. n Une Vue présente les données sous une certaine forme à l utilisateur, suivant un contexte d exploitation. n Un Controller traduit les interactions utilisateur par des appels de méthodes (comportement) sur le modèle et sélectionne la vue appropriée basée sur létat du modèle.

8 Module UV Java Page 8 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Vue globale MVC (suite) Model Controller View Models implémentent les fonctionnalités de lapplication Views présentent linformation à lutilisateur Controllers gèrent les entrées de lutilisateur

9 Module UV Java Page 9 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle MVC Avantages Désavantages n Structure O-O propre n Vues Multiples dun même modèle n Vues Synchronized n views et controllers inter- changeables n Look and Feel modifiable n Framework Potentiel n Complexité accrue n mise à jours potentiellement excessive n View/Controller fortement liés au modèle

10 Module UV Java Page 10 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Architecture du modèle MVC

11 Module UV Java Page 11 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Références Model Controller View Model Controller Model

12 Module UV Java Page 12 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Communication MVC Model Controller View 1. Entrée utilisateur 2. Modifier aspect 3. Modification interne 4. Mettre à jour

13 Module UV Java Page 13 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle MVC et les modèles de conception n View-Model (Observer) n View-Controller (Strategy) n View-View (Composite ) n View-Controller (Factory Method) n View-View (Decorator) n Model (Adaptor)

14 Module UV Java Page 14 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Cas détude Hypothétique n Le secteur technologique ralentit, impliquent que les dot-com seffondrent, laissant de nombreux programmeurs sans travail...

15 Module UV Java Page 15 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle McDonalds n La décision est prise de ne pas gaspiller ce talent...

16 Module UV Java Page 16 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Nouveau système pour la gestion des commandes n Les caissiers ont besoin dune nouvelle interface –entrées les nouvelles commandes, récupérer largent n Les cuisiniers ont besoin dune autre interface –Visualiser les commandes, supprimer celles qui sont réalisées n Exemples de code pour le Model, la View, le Controller, et la manière de les intégrer. n McDonalds utilise Java

17 Module UV Java Page 17 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Boot-strap class McDonaldsViewController{ public static void main() { //notre modèle est autonome OrderTracker model = new OrderTracker(); //ces références dépendent du modèle CashierGUI vc1 = new CashierGUI(model); CashierGUI vc2 = new CashierGUI(model); CookGUI vc3 = new CookGUI(model); CookGUI vc4 = new CookGUI(model); }

18 Module UV Java Page 18 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le Modèle import java.util.Observable; class CommandeModele extends Observable{ Vector orders; // liste de toutes les commandes //...CommandeModele()... //...getCommandeIterator()... public void ajouterCommande(Commande newOrder) { orders.add(newOrder); //modification du modèle setChanged(); // le modèle a changé (vecteur) notifyObservers(); //notification globale } //idem avec supprimerCommande() }

19 Module UV Java Page 19 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle La Vue import java.util.Observer; class CuisineVue implements Observer{ CommandeModele model; CuisineControleur controller; CuisineVue(CommandeModele newModel) { model = newModel; model.addObserver(this); controller = new CuisineControleur(model, this); initialiserVue(); } public void update(Observable changed, Object arg){ MiseAJourVue(); } private void MiseAJourVue() { //...model.getCommandeIterator()... //...mettre à jour ce qui est vu à lécran } Appelée par notifyObservers() Création du contrôleur

20 Module UV Java Page 20 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le Contrôleur import java.util.Observer; class CuisineControleur implements Observer{ CommandeModele model; CuisineVue view; //liste des contrôles JButton nextPageButton; JButton removeButton; CuisineControleur(CommandeModele inModel, CuisineVue inView){ model = inModel; model.addObserver(this); view = inView; //...

21 Module UV Java Page 21 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le Contrôleur nextPageButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { view.pagesuivante(); } }); removeButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { model.supprimerCommande(view.getCommandeSelectionnee()); } }); public void update(Observable changed, Object arg) { if (model.getNombreDeCommandes() == 0) removeButton.disable(); } Appelée par notifyObservers()

22 Module UV Java Page 22 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les Références n Le code du modèle ninclut pas de références aux classes GUI n Lutilisation de lObserver permet de réaliser le découplage n GUI font une référence au Modèle –GUI est spécifique au Modèle –réutilisation

23 Module UV Java Page 23 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le Modèle n Nécessite dêtre orienté métier pour supporter le couplage des vues et des controllers n Ne doit jamais contenir des informations concernant létat de la GUI n Ne doit pas proposer de services spécifiques à des vues particulières et à des controllers

24 Module UV Java Page 24 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle View-Controller n Pas besoin dêtre séparés –Document-View –Réduit la complexité

25 Module UV Java Page 25 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe Observable (java.util) n Cette classe représente un objet observable par d autres, au niveau du modèle de données. n Un objet observable possède un ou plusieurs observateur, ajoutés par la méthode addObserver(Observer o) n Lorsque l interface d un objet observable est modifié, la méthode notifyObservers()

26 Module UV Java Page 26 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe Observable (java.util) n La méthode notifyObservers permet de notifier les observateurs d une modification dans l état. n La modification est indiquée par la méthode hasChanged(). n Une fois les observateurs notifiés, la méthode clearChanged permet d indiquer que l objet n est plus dans l état modifié.

27 Module UV Java Page 27 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle La classe Observable (java.util) n La méthode deleteObservers() permet de supprimer l ensemble des observateurs associés à l objet. n Une modification est reflétée par la méthode setChanged(). n Une fois les observateurs notifiés, la méthode clearChanged permet d indiquer que l objet n est plus dans l état modifié.

28 Module UV Java Page 28 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle L interface Observer (java.util) n Une classe qui implémente l interface Observer, désire être notifiée des changements produits sur un objet observable.

29 Module UV Java Page 29 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle L interface Observer (java.util) n L unique méthode devant être implémentée est update(Observable o, Object arg). n La méthode update est appelée automatiquement lorsque l objet est notifié de la modification de l observable.

30 Module UV Java Page 30 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle L interface Observer (java.util) n Le premier paramètre est l objet qui notifie. n Le second paramètre est un objet passé à la méthode update, au moyen d un appel à la méthode notifyObserver(Object o)

31 Module UV Java Page 31 / 31 Deruelle Laurent Copyright © 2002 Laurent Deruelle Liens vers MVC... n Applications Programming in Smalltalk-80(TM): How to use Model-View-Controller (MVC) by Steve Burbeck, Ph.D. n A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System by Glenn E. Krasner and Stephen T. Pope ROM/Documents/MVC%20Cookbook/mvc_cookbook_1.html TWISTING THE TRIAD: The evolution of the Dolphin Smalltalk MVP application framework by Andy Bower, Blair McGlashan n MVP: Model-View-Presenter: The Taligent Programming Model for C++ and Java by Mike Potel ftp://www6.software.ibm.com/software/developer/library/mvp.pdf n MVC meets Swing: Explore the underpinnings of the JFC's Swing components by Todd Sundsted n The Model-View-Controller (MVC) Framework Stingray Software n ModelViewControllerHistory


Télécharger ppt "CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV MVC Module Java Expert."

Présentations similaires


Annonces Google