TP
Design Pattern
(Pattern Factory)
Objectif
L’utilisation du mot clé new pour créer un objet entraine une dépendance à la classe de
l’objet créé. Autrement dit, si un objet crée un autre objet, la classe de cet objet va
dépendre de la classe de l’objet créé. Ceci ne correspond pas aux principes du GoF car si
on change la classe de l’objet crée par une autre, cela risque de poser des problèmes.
La solution proposée à ce problème est de déléguer la création d’un objet à une autre
classe. Cette solution connue sous le nom de Pattern Factory (la fabrique) consiste à :
− construire une nouvelle classe qui est responsable de la création d’objet
− utiliser cette classe plutôt que de faire un new.
Le design pattern Factory permet donc la séparation de la création d’objets (dérivant
d’une même classe mère) de leur utilisation, en d’autres termes, la création des objets
est détachée de l’utilisation. Tous les objets créés ont la même interface définie par la
classe mère. La logique de création n’est pas montrée à l’utilisateur (du pattern).
Situation d’utilisation
• on souhaite centraliser la création des objets
• on souhaite déterminer le type d’objet à créer pendant l’exécution
Modèle d’implémentation
Il existe plusieurs manières d’implémenter ce pattern. Il peut par exemple être
implémenté sous la forme d'une classe qui possède une méthode chargée de renvoyer
l'instance voulue. La création de cette instance est alors réalisée en fonction de données
du contexte (par exemple valeurs fournies en paramètres de la méthode, ...).
1
Exemple d’application
On souhaite dans une application pouvoir se connecter à trois types de SGBD, par
exemple : Oracle, MySQL et SQLServer. Le SGBD choisi doit être déterminé au moment
de l’exécution.
1. Construire (dans StarUML) le diagramme de classes de conception
correspondant à cette situation.
2. Générer en java le squelette de code
3. Récupérer dans Eclipse (ou dans un autre IDE) se squelette pour implémenter et
tester les méthodes.