Td design pattern - design patterns - télécharger pdf

Exercice I (Singleton)

1. Écrire un programme Java qui permet de créer une instance de base de données unique. Cette base de données possède deux attributs : « record » (n°de l’enregistrement courant) et « name » (nom de la BDD). Elle inclut une méthode « editRecord », permettant d’éditer un enregistrement dans la BDD (en affichant seulement que l’enregistrement subit une opération de modification), et une méthode « getName », qui retourne le nom de la BDD.

2. Tester dans un programme l’unicité de la BDD.

3. Y a-t-il une possibilité de défaillance ?

Exercice II (Singleton)

1. Spécifier l’attribut et les méthodes nécessaires pour que la classe Journalisation soit basée sur le pattern Singleton. Elle possède deux méthodes : « ajouterLog(string) » pour ajouter un message de log et « getLog() » pour retourner tous les messages de log.

2. La classe CompteBancaire représente un compte bancaire avec un numéro (identifiant) et un solde. Elle permet de déposer ou retirer de l’argent grâce aux méthodes « deposerArgent(double) » et « retirerArgent(double) ». Ces méthodes utilisent la classe Journalisation pour tracer les opérations.

3. La classe Main est la classe principale de l’application. Elle permet d’exécuter un exemple et d’afficher les résultats en console. Par exemple :

  • Sur le compte numéro 123, déposer 100 DA et retirer 80 DA.
  • Sur le compte numéro 321, déposer 200 DA et retirer 110 DA.

FAQ

1. Pourquoi utiliser le pattern Singleton pour la journalisation ?

Le pattern Singleton garantit qu’une seule instance de la classe Journalisation est utilisée, ce qui évite les incohérences lors de l’écriture des logs dans plusieurs parties du programme.

2. Comment tester l’unicité d’une instance Singleton ?

On peut créer deux instances dans un programme et vérifier qu’elles pointent vers le même objet en mémoire grâce à l’opérateur ==.

3. Quels sont les risques de défaillance dans un Singleton ?

Les risques incluent la violation de l’unicité (par exemple avec la réflexion Java), la difficulté de tester (car l’instance est statique) et l’initialisation tardive (lazy loading) qui peut causer des problèmes de concurrence.

Cela peut vous intéresser :

Partagez vos remarques, questions , propositions d'amélioration ou d'autres cours à ajouter dans notre site

Enregistrer un commentaire (0)
Plus récente Plus ancienne