|
|
|
|
|
- Présentation
- Principe
- La notion de VUE
- La notion de couche PRESENTATION
- La notion de couche MODELE
- La notion de couche Accès BDD
- La notion de couche Applicative
Présentation MVP : Modèle - Vue - Présentation
MVP est le sigle pour MODELE - VUE - PRESENTATION. C'est un "Design Pattern" qui propose de découper et de structurer l'architecture des interfaces utilisateur en couches. (On peut le combiner à un découpage de l'accès aux données, lui aussi en couches, qu'on peut appeler DAL : Data Access Layer, et qui sépare les informations en mémoire de l'accès physique à la base de données). Il permet de séparer le code de gestion de l'interface (UI), du code qui manipule les données métier. Cette architecture en couches de l'application et de l'UI permet de rendre les projets plus faciles à maintenir et à faire évoluer. Attention : Ce mode de développement utilise la POO : il est obligatoire d'en maîtriser les concepts. Ce mode de développement est un mode de développement avancé. WINDEV et WINDEV Mobile, par l'intermédiaire du RAD et d'exemples, propose un cadre MVP de départ, librement adaptable en fonction de vos besoins et de vos propres choix architecturaux.
Un modèle de développement MVP se décompose en couches comme suit : La notion de VUE Une VUE représente la partie UI de l'application. Elle correspond à l'interface utilisateur (UI). Une VUE peut être sous la forme d'une fenêtre, d'un état, d'une page Web ou d'une fenêtre mobile. Certaines opérations peuvent nécessiter une interaction avec l'utilisateur (affichage d'erreur, confirmation, ...), ces interactions doivent être assurées par la VUE. - La VUE connaît la présentation.
- La VUE peut utiliser le binding pour récupérer les données à afficher depuis la couche PRESENTATION, ou lui envoyer les informations saisies ou modifiées par l'utilisateur.
- La VUE dispose d'un événement particulier pour effectuer les mises à jour nécessaires (événement "Demande de mise à jour de l'affichage"). Cet événement est appelé automatiquement lors de l'initialisation, puis sur demande de la couche PRESENTATION ou de la couche MODELE (fonction DemandeMiseAJourUI).
La notion de couche PRESENTATION La couche PRESENTATION est une classe qui effectue la liaison entre la VUE et le MODELE. Elle organise et formate les données du MODELE à afficher dans la VUE. Elle regroupe les traitements concernant les actions de l'utilisateur. La couche PRESENTATION n'a pas accès à la VUE, c'est-à -dire que la couche PRESENTATION ne doit pas accéder directement aux champs de la VUE. Par contre, la couche PRESENTATION peut demander à la VUE de se mettre à jour (utilisation de la fonction DemandeMiseAJourUI). Une même couche PRESENTATION peut être utilisée par plusieurs VUES (cas d'une fenêtre ou d'un état affichant les données provenant d'un même MODELE, par exemple : liste de clients). Chaque VUE (fenêtre, état) doit posséder une instance distincte de la classe PRESENTATION. Par contre, plusieurs PRESENTATIONS peuvent partager des instances MODELE. La couche PRESENTATION contient et décide des "données" à afficher dans la VUE. Par exemple, changer l'état d'un champ, changer la couleur d'une ligne d'un champ Table,... Les actions de l'utilisateur sont déportées dans les méthodes de la classe PRESENTATION, qui ensuite les redirigent éventuellement vers la couche MODELE. La couche PRESENTATION regroupe ainsi tous les traitements/événements concernant les actions de l'utilisateur. Le code est donc centralisé et partageable entre différentes VUEs. En revanche, la couche PRESENTATION n'accède pas à l'UI, donc pas de fonctions Ouvre, Ferme, Info, Erreur, etc. A l'inverse, la VUE connaît la couche PRESENTATION. La vue peut appeler ses Méthodes, lire ses Propriétés et utiliser le Binding. Une VUE possède une et une seule PRESENTATION. En résumé , la VUE communique avec la couche PRESENTATION : - en appelant des méthodes de la classe.
- en écrivant ou en lisant des propriétés de la classe.
- en utilisant le DataBinding pour se lier à des propriétés de la classe.
La notion de couche MODELE La couche MODELE contient les données "Métier" de l'application ainsi que la logique qui permet de les manipuler. Cette couche est constituée d'un ensemble d'objets basés sur des classes représentant les données à manipuler. La logique (donc les opérations) qui permet de manipuler ces données est représentée par des classes et des méthodes. La couche MODELE est indépendante de la couche PRESENTATION et de la VUE. La couche PRESENTATION connaît sa couche MODELE, mais à l'inverse, la couche MODELE ne connaît pas la couche PRESENTATION et encore moins la VUE. Les données à afficher dans la VUE sont contenues dans la couche MODELE. Cependant, afin de centraliser les opérations de récupération des données, on va privilégier l'accès aux données en passant par la couche PRESENTATION plutôt que d'accéder directement aux objets de la couche MODELE. On va donc articuler la communication entre la couche PRESENTATION et la couche MODELE autour de l'association d'une classe de la couche PRESENTATION et d'une classe de la couche MODELE (à l'aide de l'attribut <Associé>). En résumé, la couche PRESENTATION communique avec la couche MODELE : - en appelant des méthodes de la classe associée
- en écrivant ou en lisant des propriétés de la classe associée
La notion de couche Accès BDD La couche d'accès aux données de la Base de Données peut être constituée : - d'un ensemble de collections de procédures,
- d'un ensemble de classes.
Ces collections ou ces classes permettent de gérer les consultations et les écritures des données de la couche MODELE depuis et vers la base de données physique. L'intérêt de séparer cette couche est de pouvoir modifier et faire évoluer de manière centralisée la structure logique des données et du format de stockage (BDD relationnelle, BDD SQL, fichiers XML, Webservice, ...). Il est possible, toutefois, d'inclure cette couche dans la couche MODELE. Ces choix dépassent le cadre du MVP. La notion de couche Applicative La couche Applicative permet de gérer : - la logique de transition entre les VUEs,
- des informations communes à l'application (par exemple, centraliser la connexion à une BDD, ...),
- la couche métier de l'application.
Liste des exemples associés :
|
Exemples didactiques (WINDEV) : WD Découverte MVP - Partie 1
[ + ] Cet exemple didactique présente la mise en oeuvre d'une architecture MVP (Modèle Vue Présentation) dans un projet. Cet exemple est ici simplifié afin de pouvoir comprendre les concepts de cette architecture.
|
|
Exemples didactiques (WINDEV) : WD Découverte MVP - Partie 2
[ + ] Cet exemple didactique présente la mise en oeuvre d'une architecture MVP (Modèle Vue Présentation) dans un projet pour une analyse simple (Client - Commande - Ligne de commande - Produit). Plusieurs types de vues (et leur présentation) sont proposés : - table (avec ajout, modification, suppression et impression), - fiche, - recherche (avec filtre).
|
|
Exemples multiplateforme (WINDEV Mobile) : WM Découverte MVP
[ + ] Cet exemple montre la mise en oeuvre d'une architecture MVP (Modèle Vue Présentation) dans un projet. Cet exemple est ici simplifié afin de pouvoir comprendre les concepts de cette architecture.
|
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|