corrigé des exercices - djouabri abderrezak. quel patron de conception est adapté à ce type de...
TRANSCRIPT
Exercice: Interfaces graphiques
www.djouabri.com
Corrigés des Exercices
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
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.
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.
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.
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).
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant Bouton
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant BarreDeDefilement
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant Menu
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant graphique
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.Le diagramme final est donc le suivant
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.
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.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
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
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
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.
3. Programmez ce diagramme en Java.
3. Programmez ce diagramme en Java.
L’exécution de ce programme produit le résultat suivant
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.