Date post: | 04-Apr-2015 |
Category: |
Documents |
Upload: | hubert-barbe |
View: | 148 times |
Download: | 1 times |
Design Patterns
Factory Method – Pattern de construction
[DAN
T]
Gén
ie L
ogic
iel
1
Problématique
Une classe doit instancier des objets dont elle ne connaît que les classes abstraites, qu’elle ne peut instancier. [D
ANT]
G
énie
Log
icie
l
2
Factory MethodDescription :
"Define an interface for creating an object, but let the subclasses decide which class to instantiate. The Factory method lets a class defer instantiation to subclasses.“
-Introduire une méthode abstraite de création d’un objet en reportant aux sous-classes concrètes la création effective.
Domaines d’utilisation :
-Une classe ne connaît que les classes abstraites des objets avec lesquels elle possède des relations.-Une classe veut transmettre à ses sous-classes les choix d’instanciation en profitant des mécanismes du polymorphisme.
[DAN
T]
Gén
ie L
ogic
iel
3
Factory Method
Avantages du pattern Factory Method :
-Pouvoir instancier dynamiquement des sous-classes.-Augmenter la généricité du code par l’utilisation d’objets typés en abstrait.
Remarque :
-Le pattern Abstract Factory est implementé avec des méthodes de fabrique (Factory methods)
[DAN
T]
Gén
ie L
ogic
iel
4
Factory Method
[DAN
T]
Gén
ie L
ogic
iel
5
Exemple :
Factory MethodStructure générique du pattern :
[DAN
T]
Gén
ie L
ogic
iel
6
Produit Abstrait
[DAN
T]
Gén
ie L
ogic
iel
7
Produits concrets
[DAN
T]
Gén
ie L
ogic
iel
8
Produits concrets
[DAN
T]
Gén
ie L
ogic
iel
9
Créateur Abstrait
[DAN
T]
Gén
ie L
ogic
iel
10
Créateurs Concrets
[DAN
T]
Gén
ie L
ogic
iel
11
Classe utilisatrice du Pattern
[DAN
T]
Gén
ie L
ogic
iel
12
Résultat en sortie
Le paiement de la commande au comptant de : 2000 est effectué.
Le paiement de la commande au comptant de : 10000 est effectué.
Le paiement de la commande au comptant de : 2000 est effectué.
On peut remarquer que la demande d’une commande assortie d’un crédit de 10000 a été refusée à cause de la contrainte exprimée dans la méthode valide() de CommandeCredit.
[DAN
T]
Gén
ie L
ogic
iel
13