0% ont trouvé ce document utile (0 vote)
2 vues2 pages

Gestionnaire de Connexions et Adaptateurs JSON/XML

Transféré par

Fatima Ezzahra
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues2 pages

Gestionnaire de Connexions et Adaptateurs JSON/XML

Transféré par

Fatima Ezzahra
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Pr. BE.

ELBAGHAZAOUI Génie Logiciel 2024 / 2025


TP. Design Patterns ENSA-BM

Exercice : Gestionnaire de Connexions à une Base de Données


Dans cet exercice, vous allez implémenter un gestionnaire de connexions à une base de données en utilisant le
pattern Singleton. Le but est de s'assurer qu'il n'y ait qu'une seule instance du gestionnaire de connexions pour
l'ensemble de l'application.
Contexte :
Vous développez une application qui doit se connecter à une base de données pour exécuter plusieurs requêtes. Il
est important de garantir qu'une seule instance du gestionnaire de connexions soit utilisée pour éviter d'ouvrir
plusieurs connexions en même temps, ce qui pourrait ralentir l'application ou provoquer des erreurs.
Objectifs :
1. Implémenter une classe DatabaseConnectionManager qui suit le pattern Singleton.
2. Fournir une méthode pour obtenir l'instance unique de la connexion.
3. Simuler l'ouverture et la fermeture de la connexion.
4. Écrire une classe de test pour simuler l'utilisation de la connexion à travers plusieurs appels et vérifier qu'il
n'y a qu'une seule instance.
Étape 1 : Création de la classe Singleton
Créez une classe DatabaseConnectionManager qui va gérer la connexion.
 Déclarez une variable privée statique pour stocker l'instance unique.
 Implémentez un constructeur privé pour empêcher la création d'instances via new.
 Créez une méthode getInstance() qui retourne l'instance unique.
 Ajoutez une méthode pour simuler l'ouverture de la connexion et une autre pour la fermeture avec sysout.
Étape 2 : Tester la classe Singleton
Créez une classe de test DatabaseTest pour simuler plusieurs tentatives de connexion et vérifier qu'il n'y a
qu'une seule instance.
 Utilisez plusieurs appels pour obtenir l'instance de DatabaseConnectionManager.
 Ouvrez et fermez la connexion plusieurs fois pour vérifier que la même instance est utilisée avec ==.
Exercice : Usine de Sandwichs et Burgers
Contexte :
Vous devez créer une application qui permet de commander différents types de sandwichs et de burgers. Chaque
type de sandwich a des caractéristiques spécifiques, et vous voulez utiliser une Factory pour créer les différents
objets sans que le client (utilisateur) ait à se soucier de quel type spécifique il s'agit.
Objectifs :
1. Implémenter une classe FoodFactory qui crée différents types de sandwichs et de burgers.
2. Créer des classes pour différents types de sandwichs et burgers.
3. Utiliser la méthode de la Factory pour créer des objets sans que le client connaisse les détails de la création.
Étape 1 : Définir l'interface commune pour les types de nourriture
Commencez par créer une interface Food avec une méthode prepare().
Étape 2 : Créer les classes concrètes (Sandwich et Burger)
Créez plusieurs classes concrètes qui implémentent l'interface Food.
Étape 3 : Créer la Factory
Créez une classe FoodFactory qui va créer les objets correspondants en fonction du type de nourriture demandé.
1. Déclarer la classe FoodFactory. Cette classe sera responsable de la création des objets Food.
2. Ajouter la méthode “public static Food getFood(String foodType)”
3. Si foodType est null, la méthode retourne immédiatement null pour éviter de continuer avec une valeur
invalide.
4. Utiliser la structure de décision if-else pour vérifier la valeur de foodType et créer l'objet correspondant.
a. Utiliser equalsIgnoreCase : Cette méthode est utilisée pour comparer des chaînes de caractères en
ignorant la casse (majuscules/minuscules)

Page 1 / 2
Pr. [Link] Génie Logiciel 2024 / 2025
TP. Design Patterns ENSA-BM

b. Retourne un nouvel objet : Si la chaîne correspond à "SANDWICH" ou "BURGER", la méthode


retourne une nouvelle instance de la classe correspondante (Sandwich ou Burger).
5. Retourner null si le type est inconnu.
Exercice : Adaptateur de Formats de Données
Contexte :
Vous travaillez sur une application qui doit lire des fichiers dans différents formats. Actuellement, l'application ne
supporte que les fichiers de type XML, mais vous devez l'adapter pour lire également des fichiers de type JSON.
Au lieu de modifier l'implémentation existante, vous allez utiliser un Adapter pour faire fonctionner un lecteur
JSON avec l'interface d'un lecteur XML.
Objectifs :
1. Créer une interface XmlReader qui définit une méthode pour lire des fichiers XML.
2. Créer une classe XmlFileReader qui implémente XmlReader et lit les fichiers XML.
3. Créer une classe JsonFileReader qui lit des fichiers JSON mais n'implémente pas XmlReader.
4. Créer un Adapter JsonToXmlAdapter qui permet à JsonFileReader d'être utilisé à la place d'un XmlReader.
5. Écrire une classe de test pour démontrer l'utilisation de l'adaptateur.
Étape 1 : Créer l'interface XmlReader
L'interface XmlReader définit une méthode readXml(String filename) qui sera utilisée par toutes les classes
implémentant cette interface pour lire des fichiers XML.
Étape 2 : Implémenter la classe XmlFileReader
Cette classe implémente l'interface XmlReader et fournit une méthode pour lire un fichier XML :
[Link]("Reading data from XML file: " + filename);
Étape 3 : Créer la classe JsonFileReader
Cette classe représente un lecteur JSON qui a sa propre méthode pour lire des fichiers JSON, mais elle
n'implémente pas l'interface XmlReader.
Étape 4 : Créer l'Adaptateur JsonToXmlAdapter
L'adaptateur permet d'utiliser un JsonFileReader comme s'il s'agissait d'un XmlReader. Il implémente l'interface
XmlReader mais redirige l'appel de readXml() vers readJson().
 Déclarer la classe JsonToXmlAdapter : C'est la classe qui implémente l'interface XmlReader pour agir
comme un lecteur XML.
 Déclarer l'attribut JsonFileReader : Cet attribut est une référence à un lecteur JSON que l'adaptateur
utilisera.
 Créer un constructeur : Le constructeur prend un JsonFileReader en paramètre pour l'utiliser dans les
méthodes de l'adaptateur.
 Implémenter la méthode readXml(String filename) : Cette méthode redirige l'appel de la méthode XML
vers la méthode JSON, en adaptant les appels entre deux interfaces incompatibles.
Étape 5 : Tester l'Adaptateur
Créez une classe de test pour démontrer l'utilisation de l'adaptateur.
1. Déclarer la classe de test AdapterPatternDemo
Créer une classe Java avec une méthode main() pour tester l'adaptateur.
2. Tester la lecture de fichiers XML avec un XMLFileReader
Créer une instance de XmlFileReader et lire un fichier XML pour tester le comportement standard du lecteur
XML.
3. Créer une instance de JsonFileReader
Instancier un objet JsonFileReader qui lit des fichiers JSON mais qui n'est pas compatible avec l'interface
XmlReader.
4. Utiliser l'adaptateur JsonToXmlAdapter
Utiliser l'adaptateur pour que le JsonFileReader se comporte comme un XmlReader.

Page 2 / 2

Vous aimerez peut-être aussi