corrigé des exercices - djouabri abderrezak. quel patron de conception est adapté à ce type de...
TRANSCRIPT
![Page 1: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/1.jpg)
Exercice: Interfaces graphiques
www.djouabri.com
Corrigés des Exercices
![Page 2: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/2.jpg)
Les systèmes d’exploitation tels que Microsoft
Windows, Mac OS et Linux supportent des interfaces
graphiques. Le but de cet exercice est de proposer
une modélisation d’un système permettant la
création de différents composants d’une interface
graphique (boutons, barres de défilement et menus)
en fonction du système d’exploitation auquel ils sont
destinés. Le modèle doit permettre de créer des
composants sans devoir connaitre leurs classes
concrètes. Le système doit être indépendant de la
façon dont les composants évoluent.
Exercice : Interfaces graphiques
![Page 3: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/3.jpg)
Q1. Quel patron de conception est adapté à ce type de problème ?
Le système décrit des familles d’objet
devant être utilisés ensemble.
Le patron de conception qui convient
le mieux à ce type de problème est le
patron Fabrique Abstraite.
![Page 4: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/4.jpg)
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le patron Fabrique Abstraite permet de définir une classe
abstraite décrivant une interface commune pour la création
de chaque variété d’objets. Cette classe est nommée
FabriqueComposant.
Les classes qui l’implantent fournissent le code des
méthodes de création de chaque type d’objet selon le
modèle du système en cours. Ainsi, il faut définir une classe
par système.
Trois sous-classes sont créées : FabriqueComposantWindows,
FabriqueComposantMacOS et
FabriqueComposantLinux.
![Page 5: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/5.jpg)
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
La hiérarchie des fabriques est comme suit.
![Page 6: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/6.jpg)
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Pour chaque type de composant graphique, il faut aussi créer une classe
abstraite dont les sous-classes concrètes implantent les versions de ces
composants selon le format des différents systèmes. Les classes abstraites
Bouton, BarreDeDefilement et Menu ont comme sous-classes leurs différentes
versions selon le système. Les sous-classes concrètes de Bouton
sont BoutonWindows, BoutonLinux et BoutonMacOS.
Une méthode de création par composant est ajoutée aux classes de fabrique.
Les liens entre les classes de fabrication concrètes et les classes concrètes de
composants qu’elles créent sont représentés par des flèches en pointillés
(relation de dépendance).
![Page 7: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/7.jpg)
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant Bouton
![Page 8: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/8.jpg)
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant BarreDeDefilement
![Page 9: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/9.jpg)
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant Menu
![Page 10: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/10.jpg)
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant graphique
![Page 11: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/11.jpg)
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.Le diagramme final est donc le suivant
![Page 12: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/12.jpg)
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme final est donc le suivant…
Enfin le client a accès uniquement aux classes
abstraites des composants.
![Page 13: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/13.jpg)
![Page 14: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/14.jpg)
3. Programmez ce diagramme en Java.
Le code Java introduisant les classes abstraites
Bouton, BarreDeDefilement et Menu ainsi
que leurs sous-classes est comme suit.
Des attributs simples sont associés à chaque
classe ainsi qu’une méthode permettant d’en
afficher les caractéristiques.
![Page 15: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/15.jpg)
3. Programmez ce diagramme en Java.
![Page 16: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/16.jpg)
3. Programmez ce diagramme en Java.
![Page 17: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/17.jpg)
3. Programmez ce diagramme en Java.
![Page 18: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/18.jpg)
3. Programmez ce diagramme en Java.
![Page 19: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/19.jpg)
3. Programmez ce diagramme en Java.
![Page 20: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/20.jpg)
3. Programmez ce diagramme en Java.
![Page 21: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/21.jpg)
3. Programmez ce diagramme en Java.
![Page 22: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/22.jpg)
3. Programmez ce diagramme en Java.
![Page 23: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/23.jpg)
3. Programmez ce diagramme en Java.
![Page 24: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/24.jpg)
3. Programmez ce diagramme en Java.
![Page 25: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/25.jpg)
3. Programmez ce diagramme en Java.
![Page 26: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/26.jpg)
3. Programmez ce diagramme en Java.
![Page 27: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/27.jpg)
3. Programmez ce diagramme en Java.
L’interface FabriqueComposant est ensuite
introduite ainsi que ses trois classes d’implantation
pour chaque système d’exploitation. Chaque
classe d’implantation crée les objets correspondant
aux classes concrètes des composants
![Page 28: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/28.jpg)
3. Programmez ce diagramme en Java.
![Page 29: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/29.jpg)
3. Programmez ce diagramme en Java.
![Page 30: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/30.jpg)
3. Programmez ce diagramme en Java.
![Page 31: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/31.jpg)
3. Programmez ce diagramme en Java.
![Page 32: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/32.jpg)
3. Programmez ce diagramme en Java.
Le programme principal introduit dans la classe
InterfaceGraphique utilise une fabriqueMac OS puis une fabrique Windows. Les sous-
classes concrètes correspondant aux familles
d’objet n’ont pas besoin d’être connues par le
client.
![Page 33: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/33.jpg)
3. Programmez ce diagramme en Java.
![Page 34: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/34.jpg)
3. Programmez ce diagramme en Java.
L’exécution de ce programme produit le résultat suivant
![Page 35: Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de problème ? Le système décrit des familles d’objet devant être utilisés ensemble](https://reader034.vdocuments.site/reader034/viewer/2022051601/5adfd5f17f8b9a6e5c8ca5be/html5/thumbnails/35.jpg)
4. En quoi consisterait l’ajout d’un nouveau système
d’exploitation ?
Le patron Abstract Factory offre une structure flexible facilitant l’ajout ou le retrait
de familles d’objets.
L’ajout d’un nouveau système
d’exploitation consiste à créer une fabrique
concrète pour ce système ainsi que les
produits concrets correspondants.