Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de...

Post on 25-Apr-2018

221 views 5 download

Transcript of Corrigé des Exercices - DJOUABRI Abderrezak. Quel patron de conception est adapté à ce type de...

Exercice: Interfaces graphiques

www.djouabri.com

djouabri@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.