Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à 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 PHP
  3. Exercices
Extrait - Design Patterns en PHP Les 23 modèles de conception : descriptions et solutions illustrées en UML2 et PHP (2e édition)
Extraits du livre
Design Patterns en PHP Les 23 modèles de conception : descriptions et solutions illustrées en UML2 et PHP (2e édition)
1 avis
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 design pattern permet 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 design 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 design pattern permet 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...

Correction des exercices

1. Création de cartes de paiement

a. Création en fonction du client

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

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

Création de cartes de paiement en fonction du client

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.

Création à l’aide d’une fabrique

2. Autorisation des cartes de paiement

1. Le design 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 implémentée différemment dans les deux sous-classes CarteCredit et CarteDebit relativement à l’énoncé.

2. Le diagramme des classes est le suivant :

Autorisation des cartes de paiement.png

3. Système de fichiers

1. Un système de fichiers est basé sur une composition récursive. L’utilisation du design 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 dit "racine".

images/ANNEXEEI04.png

3. Le design pattern qui ajoute des fonctionnalités à des objets existants en nécessitant le minimum de modifications est 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 design 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èmeFichier. La méthode accepteVisiteur de SystèmeFichier invoque la méthode accepteVisiteur de la racine....