Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Design Patterns en Java
  3. Exercices
Extrait - Design Patterns en Java Descriptions et solutions illustrées en UML 2 et Java (5e édition) - Les 23 modèles de conception
Extraits du livre
Design Patterns en Java Descriptions et solutions illustrées en UML 2 et Java (5e édition) - Les 23 modèles de conception Revenir à la page d'achat du livre

Exercices

Énoncés des exercices

1. Création de cartes de paiement

a. Création en fonction du client

Les clients d’une banque sont classés en deux catégories :

  • Ceux qui ont le droit au crédit.

  • Ceux qui n’ont pas ce droit.

Lors de la demande d’une carte de paiement, les premiers reçoivent une carte de crédit (à débit différé sur leur compte) alors que les seconds peuvent seulement avoir une carte de débit (à débit immédiat sur leur compte).

1. Quel pattern de conception permet-il de modéliser la création de la carte de paiement en fonction du client ?

2. Modélisez son utilisation par un diagramme de classes.

b. Création à l’aide d’une fabrique

Il existe deux modèles de cartes de débit et de crédit, à savoir les cartes Visa et les cartes MasterCard.

Modélisez, à l’aide d’un diagramme de classes, la création d’une carte de paiement en fonction de sa famille (de crédit ou de débit) en utilisant le pattern Abstract Factory.

2. Autorisation des cartes de paiement

Lors d’un achat avec une carte de paiement, une autorisation doit être accordée. Si la carte est une carte de débit (débit immédiat), l’autorisation est accordée si le solde du compte sur lequel la carte est débitée est suffisant. Si la carte est une carte de crédit (débit différé), l’autorisation est accordée si le montant mensuel des dépenses n’a pas dépassé le plafond.

1. Quel pattern de conception permet-il de modéliser l’autorisation lors d’un achat avec une carte de paiement en fonction du modèle de la carte ?

2. Modélisez son utilisation par un diagramme de classes.

3. Système de fichiers

Un répertoire contient des sous-répertoires et des fichiers. Un système de fichiers consiste en un ensemble de sous-répertoires et de fichiers contenus dans un répertoire "racine".

1. Quel pattern permet-il de modéliser un système de fichiers ?

2. Montrez cette modélisation...

Correction des exercices

1. Création de cartes de paiement

a. Création en fonction du client

1. Le pattern adapté pour créer une carte en fonction du client est le pattern Factory Method. La création de la carte est réalisée dans la sous-classe correspondant à la nature du client.

2. Le diagramme des classes correspondant est donné à la suite.

images/figexo2.PNG

b. Création à l’aide d’une fabrique

Le but est ici d’obtenir une fabrique de cartes MasterCard et Visa pour les cartes de crédit et une fabrique similaire pour les cartes de débit. Le diagramme des classes correspondant est donné ci-dessous.

images/figexo3.PNG

2. Autorisation des cartes de paiement

1. Le pattern adapté est Template Method. Il permet de distinguer l’autorisation de paiement en fonction du modèle de carte. La méthode autorisePaiement est abstraite dans la classe CartePaiement. Elle est implantée différemment dans les deux sous-classes CarteCrédit et CarteDébit relativement à l’énoncé.

2. Le diagramme des classes est le suivant :

images/figureCorrectionExercices3.png

3. Système de fichiers

1. Un système de fichiers est basé sur une composition récursive. L’utilisation du pattern Composite est totalement adaptée pour modéliser un tel système.

2. Le diagramme des classes donnant la modélisation du système de fichiers se trouve à la suite. Un répertoire est composé de nœuds qui peuvent être soit des fichiers soit des répertoires. Le diagramme montre également la relation entre le système des fichiers et le répertoire "racine".

images/3figure31-2-3A.png

3. Le pattern qui ajoute des fonctionnalités à des objets existants en nécessitant le minimum de modifications est le pattern Visitor. C’est donc lui qui est le plus adapté pour réaliser des opérations sur le système de fichiers.

4. Le diagramme de classes après intégration du pattern Visitor est donné ci-dessous. Pour accepter les visiteurs, la méthode accepteVisiteur a été introduite dans les classes Noeud, Fichier, Répertoire et Système- Fichier. La méthode accepteVisiteur de SystèmeFichier invoque la méthode accepteVisiteur de la racine. Cette dernière invoque...