Mécanisme de persistance et Data Access Object (DAO)
Transcription
Mécanisme de persistance et Data Access Object (DAO)
Université de Cergy-Pontoise, Master ISC/SIC, 1èreAnnée Mécanisme de persistance et Data Access Object (DAO) Conception Orientée Objet - TD N° 6 1. Comprendre le mécanisme de persistance des objets Téléchargez le programme de démonstration et le faire fonctionner sur votre ordinateur. Créez une nouvelle base de données nommée « coo-demo » (nom choisi dans le fichier de configuration). L’ordre des classes de test à étudier : TestComplexPerson, TestPerson et TestTransation. Le diagramme d’étattransition simplifié ci-dessous vous permet de mieux comprendre le mécanisme de persistance. L’objectif de l’exercice est d’approfondir vos compréhension / connaissances / compétences en ORM Hibernate, en vue du projet COO à réaliser en Atelier de Gestion de Projet (AGP). 2. Restructuration et refactoring du programme A ce jour, nous avons eu différentes versions de notre programme « bank ». Notre programme évolue rapidement et sa taille augmente sans cesse. Avant d’avoir les prochaines versions, nous avons besoin de « prendre un peu de recul » et de restructurer notre programme afin de garantir toujours sa maintenabilité et son extensibilité, dans le cadre d’une architecture en 5-tiers (prévue pour la 8e séance de TD). Voici une liste non exhaustive des parties du programme à « refactor » : Certains objets de domaine (business objects : BO) sont annotés et persistés directement, ce qui contre le principe de DAO. Il faut les rendre en POJO (Plain Old Java Object) et gérer le travail de persistance dans la couche « Persistence ». A ce propos, les interfaces DAO (ex. StatisticPersistence) et leurs implémentations doivent être réorganisées. Vous devez réfléchir pour créer des classes persistance (à annoter) dans la couche « Persistence », afin de traiter les opérations CRUD, demandées par la couche « Business ». La classe « Simulation » est { présent bien complexe, vous pouvez essayer d’en extraire certains fonctionnements et les mettre dans d’autres nouvelles classes, en laissant uniquement l’algorithme de simulation. Regrouper toutes classes BO dans un package et des sous-packages. …… Presentation Layer MVC controller Layer JSF Pages JSF beans Business Layer DAO Layer Persistence Layer Business objects (Domain objects) DAO interfaces DAO implementation with data sources JSF Pages 1/1