TP 3 - Correction (1)

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 16

Université Sultan Moulay Slimane

Ecole Nationale des Sciences Appliquées de Khouribga


Département : Mathématiques & informatique
Filière : IID (3ème année)
Module : Génie logiciel
Professeur : M. Nasri Mohammed

TP3 : Design Patterns

L’objectif de ce TP est de manipuler les principes des design patterns.

Créer une architecture MVC dans votre projet : couche modèle, vue et service.
Pour gérer les employés, nous avons besoin d’une classe modèle pour accéder à
la base de données, d’une classe service qui sert la couche vue et d’une classe
vue qui communique avec les utilisateurs.
Dans le package beans, ajouter une classe Employee (id, nom).

DP de création :

1. Singleton

Dans notre projet, ajoutez le design pattern Singleton aux classes Stateless du
projet. En général, ce sont toutes les classes de la vue, du service, et de DAO
(modèle).
2. La Factory

Pour se connecter à la base de données, les classes de la couche DAO utilisent


un objet de type IConnection (interface que vous devez créer et qui propose les
fonction insert, delete, select).

Créer une implémentation MySql de cette classe et fournissez sa factory afin que
la couche DAO ne soit pas liée à cette classe.
3. Le Prototype

Nous souhaitons offrir la fonctionnalité dupliquer un employé. Fournissez la


fonction service et la fonction DAO (utiliser le prototype).
4. Le Builder

Nous souhaitons enrichir les attributs de la classe Employee (en ajouter 10


autres), créer une builder pour cette classe.
Ce builder peut être utilisé ainsi :
La structure du projet à la fin de cette partie est :
DP de structure :

1. Le proxy

Ajoutez à la classe DAO un proxy DaoProxy qui n’exécute les opérations de


mise à jour DAO que pour les utilisateurs ayant droit (récupérez un user depuis
le contexte, puis appeler la fonction isGranted()) ;
2. Le Décorateur

Ajoutez à la classe DAO un décorateur de journalisation qui écrit dans un log


(db.log) les évènements survenus sur la DB (date : insertion, date : mise à jour,
date : suppression, date : listing, date : recherche, etc.)
3. Le Composite

Un employé peut être un chef d’équipe et donc chef de plusieurs employés. On


souhaite à partir de chaque employé accéder aux employés de son équipe.
4. Le Memento

On souhaite garder l’historique des états des employés. Implémentez le pattern


memento pour cette classe.
5. Le bridge

Les couches services, dao et vues doivent être reliés via des ponts.
La structure de ce projet à la fin de cette partie est comme suit :
DP de comportement :
1. L’observer

Créer une classe EmployeeCache, cette classe stoque la liste des employés dans
un collection. Cette classe doit observer la classe EmployeeDao, une fois cette
dernière modifie la base de données, la classe EmployeeCache doit mettre à jour
sa collection.

2. Le visiteur

Nous souhaitons que les classes de la couche DAO puissent exporter les données
vers des fichiers texte plats. Implémentez cette fonctionnalité en utilisant le
pattern visiteur.

3. Stratégie

Nous souhaitons que l’enregistrement des données se fait soit dans la base de
données soit dans des fichier (selon le choix de l’utilisateur, au démarrage de
l’application par exemple)

4. Commande

Nous souhaitons créer une API pour notre projet, à consommer plutard par
REST ou autre. Cette API doit fournir les fonctionnalités de service existantes
déjà mais en utilisant le pattern Commande, c’est-à-dire des classes
EmployeeListCommand (avec une méthode execute), etc.

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy