UV MVC Module Java Expert

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

Produit Gammes Nomenclatures Modules Techniques Prix de Revient Prix de Vente Modules Techniques Client Marges Mise en route Temps Unitaire Prix (Ex:
Gestion des événements (suite)
Patrons Observateur/MVC programmation évènementielle
Android View, onClick, Activity, Modèle Vue Contrôleur
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Projet n°4 : Objecteering
JXDVDTEK – Une DVDthèque en Java et XML
51 Les technologies XML Cours 7 : Utilisations dXML Janvier Version 1.0 -
Indicateurs de position
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Session Module Java Expert.
Plan de formation Chapitre 1 : Présentation de SAP
BDA'02 1 Tolérance aux fautes (TaF) adaptable pour les systèmes à composants : application à un gestionnaire de données Phuong-Quynh Duong, Elizabeth Pérez-Cortés,
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
بسم الله الرحمن الرحيم. Institut Supérieure des Etudes Technologiques de Kébili.
Interface Homme Machine IHM Pro
Gestion de la communication par établissement sur le site ville
Développement d’applications web
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
le profil UML en temps réel MARTE
JAVASERVER FACES Un framework Java pour le développement Web.
Administration de SharePoint
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Chaque use-case génère un ou des scénarios, traduits par des diagrammes objets, qui permettent d’introduire et/ou de compléter les diagrammes des catégories.
Configuration de Windows Server 2008 Active Directory
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Chapitre 21 Collections Partie I Introduction Une collection : est un objet qui regroupe multiple éléments dans une unité. Une collection est.
Patterns et maintenabilité dans lindustrie : un cas concret Christophe Saint-Marcel Silicomp Ingénierie.
Gestion des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
5.1 URDL22005 Systèmes dexploitation Threads Vue dEnsemble Modèles de Multithreading Problèmes des Threads Pthreads Threads Windows XP Threads Linux Threads.
Développement d’application web
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Behavioral Design Patterns The Observer Pattern Roberto Demontis Sylvain Giroux.
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
Programmation concurrente
Notre calendrier français MARS 2014
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Android View, onClick, Activity, Modèle Vue Contrôleur
Veuillez trouver ci-joint
Projet de Master première année 2007 / 2008
Adaptée du cours de Richard Grin
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Patrons de conceptions de créations
JEE 5 F.Pfister 2 institut eerie JEE – Une plateforme serveur  Développement et exécution d'applications réparties.
‘‘Open Data base Connectivity‘‘
Stage 2A CS80 pour Origin 1/28. 1) Presentation of the internship 2) The Multi-Oscillator 3) Connection-GUI’s API Conclusion Stage 2A CS80 pour Origin.
Introduction.
Objectifs À la fin de ce cours, vous serez capables de :
CALENDRIER-PLAYBOY 2020.
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Outil de gestion des cartes grises
Gérer la sécurité des mots de passe et les ressources
1 New Version Acquisition d’images Traitement d’images Interprétation clinique Chaîne de traitement Dev. logiciel creaTools 5 GDCMcreaImageIOcreaMaracasVisu.
22 Visual Studio Tools et Office 2010 Thomas LEBRUN Architecte Access It Sebastien BOVO Application Dev Consultant Microsoft France
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Interfaces graphiques. Composants d'interface utilisateur graphique (GUI) 1 Bibliothèques Awt et Swing Procédures communes pour l'utilisation de ces clases.
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
Struts.
Behavioral Design Patterns The Observer Pattern. Intention Définir une dépendance de “1” à “n” entre des objets de telle sorte que lorsque l’état d’un.
La programmation par objets Principes et concepts Etude de Smalltalk.
Observer/Observable Définition Fonctionnement Exemple.
Architecture J2EE Web Jean-Jacques LE COZ. J2EE Web Container JSP Page Servlet J ava 2 Standard Edition APIs EJB Container EJB JDBCJMS JNDI JTA JavaMail.
Transcription de la présentation:

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

Module Java Vue d’ensemble du langage Java Le langage Java : syntaxe et sémantique Programmation multi-tâche : les threads Accéder aux bases de données Composants réutilisables : le modèle MVC Développement Client/Serveur Présentation d’un IDE : WSAD / Forté / JBuilder Les serveurs d’applications J2EE Les Enterprise JavaBeans Ré-ingénierie d’applications Java

Vue globale de MVC “Dans le paradigme MVC l’entrée utilisateur, la modélisation du monde extérieur, l’aspect visuel présenté l’utilisateur sont explictement séparés et gérés par trois types d’objet, chacun spécialisé dans sa tâche.” [Burbeck 92]

Buts de MVC 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

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

Historique de MVC (suite) ObjectWorks en 1989 a utilisé les détenteurs de valeurs In 1992 VisualWorks a remplacé ObjectWorks et a utilisé de composants de fine granularité GUI spécifiant l’interface MVC. Visualworks a ajouté la gestion des événements par des controllers en 1998

Structure de MVC Le modèle représente la structure des données dans l ’application et les opérations spécifiques sur ces données. Une Vue présente les données sous une certaine forme à l ’utilisateur, suivant un contexte d ’exploitation. 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.

Vue globale MVC (suite) Controllers gèrent les entrées de l’utilisateur Controller View Views présentent l’information à l’utilisateur Model Models implémentent les fonctionnalités de l’application

MVC Avantages Désavantages Structure O-O propre Vues Multiples d’un même modèle Vues Synchronized views et controllers inter-changeables Look and Feel modifiable Framework Potentiel Complexité accrue mise à jours potentiellement excessive View/Controller fortement liés au modèle

Architecture du modèle MVC

Références Controller View View Controller Model Model Model

Communication MVC Controller View Model 1. Entrée utilisateur 2. Modifier aspect 4. Mettre à jour Model 3. Modification interne

MVC et les modèles de conception View-Model (Observer) View-Controller (Strategy) View-View (Composite ) View-Controller (Factory Method) View-View (Decorator) Model (Adaptor)

Cas d’étude Hypothétique Le secteur technologique ralentit, impliquent que les dot-com s’effondrent, laissant de nombreux programmeurs sans travail ...

McDonald’s La décision est prise de ne pas gaspiller ce talent ...

Nouveau système pour la gestion des commandes Les caissiers ont besoin d’une nouvelle interface entrées les nouvelles commandes, récupérer l’argent Les cuisiniers ont besoin d’une autre interface Visualiser les commandes, supprimer celles qui sont réalisées Exemples de code pour le Model, la View, le Controller, et la manière de les intégrer. McDonald’s utilise Java

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); }

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()

La Vue Création du contrôleur Appelée par notifyObservers() 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 Création du contrôleur Appelée par notifyObservers()

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; //...

Le Contrôleur Appelée par notifyObservers() nextPageButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { view.pagesuivante(); } }); removeButton.addActionListener(new ActionListener(){ model.supprimerCommande(view.getCommandeSelectionnee()); public void update(Observable changed, Object arg) { if (model.getNombreDeCommandes() == 0) removeButton.disable(); Appelée par notifyObservers()

Les Références Le code du modèle n’inclut pas de références aux classes GUI L’utilisation de l’Observer permet de réaliser le découplage GUI font une référence au Modèle GUI est spécifique au Modèle réutilisation

Le Modèle Nécessite d’être orienté métier pour supporter le couplage des vues et des controllers Ne doit jamais contenir des informations concernant l’état de la GUI Ne doit pas proposer de services spécifiques à des vues particulières et à des controllers

View-Controller Pas besoin d’être séparés Document-View Réduit la complexité

La classe Observable (java.util) Cette classe représente un objet observable par d ’autres, au niveau du modèle de données. Un objet observable possède un ou plusieurs observateur, ajoutés par la méthode addObserver(Observer o) Lorsque l ’interface d ’un objet observable est modifié, la méthode notifyObservers()

La classe Observable (java.util) La méthode notifyObservers permet de notifier les observateurs d ’une modification dans l ’état. La modification est indiquée par la méthode hasChanged(). Une fois les observateurs notifiés, la méthode clearChanged permet d ’indiquer que l ’objet n ’est plus dans l ’état modifié.

La classe Observable (java.util) La méthode deleteObservers() permet de supprimer l ’ensemble des observateurs associés à l ’objet. Une modification est reflétée par la méthode setChanged(). Une fois les observateurs notifiés, la méthode clearChanged permet d ’indiquer que l ’objet n ’est plus dans l ’état modifié.

L ’interface Observer (java.util) Une classe qui implémente l ’interface Observer, désire être notifiée des changements produits sur un objet observable.

L ’interface Observer (java.util) L ’unique méthode devant être implémentée est update(Observable o, Object arg). La méthode update est appelée automatiquement lorsque l ’objet est notifié de la modification de l ’observable.

L ’interface Observer (java.util) Le premier paramètre est l ’objet qui notifie. Le second paramètre est un objet passé à la méthode update, au moyen d ’un appel à la méthode notifyObserver(Object o)

Liens vers MVC ... Applications Programming in Smalltalk-80(TM): How to use Model-View-Controller (MVC) by Steve Burbeck, Ph.D. http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System by Glenn E. Krasner and Stephen T. Pope http://rain.create.ucsb.edu/~stp/CD-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 http://www.object-arts.com/Papers/TwistingTheTriad.PDF 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 MVC meets Swing: Explore the underpinnings of the JFC's Swing components by Todd Sundsted www.javaworld.com/javaworld/jw-04-1998/jw-04-howto.html The Model-View-Controller (MVC) Framework Stingray Software http://www.stingray.com/products/objtoolkitpro/mvc.cfm ModelViewControllerHistory http://c2.com/cgi/wiki?ModelViewControllerHistory