Serie07 Corrige PDF

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 35

Corrigé des Exercices

Série 7
Série 07, Exercice 05: Interfaces graphiques
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.
Série 07, Exercice 05: 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.
Série 07, Exercice 05: Interfaces graphiques
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.
Série 07, Exercice 05: Interfaces graphiques
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.


Série 07, Exercice 05: Interfaces graphiques
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).
Série 07, Exercice 05: Interfaces graphiques
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant Bouton
Série 07, Exercice 05: Interfaces graphiques
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant BarreDeDefilement
Série 07, Exercice 05: Interfaces graphiques
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant Menu
Série 07, Exercice 05: Interfaces graphiques
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme de composant graphique
Série 07, Exercice 05: Interfaces graphiques
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.
Le diagramme final est donc le suivant
Série 07, Exercice 05: Interfaces graphiques
Q2. Proposez une modélisation de l’ensemble du système sous forme de
diagrammes de classes.

Enfin le client a accès uniquement aux classes


abstraites des composants.

Le diagramme final est donc le suivant…


Série 07, Exercice 05: Interfaces graphiques
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.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
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
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.

Le programme principal introduit dans la classe


InterfaceGraphique utilise une fabrique
Mac 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.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.
Série 07, Exercice 05: Interfaces graphiques
3. Programmez ce diagramme en Java.

L’exécution de ce programme produit le résultat suivant


Série 07, Exercice 05: Interfaces graphiques
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.

Vous aimerez peut-être aussi