design patterns
DESCRIPTION
Design Patterns. Factory Method – Pattern de construction. Problématique. Une classe doit instancier des objets dont elle ne connaît que les classes abstraites, qu’elle ne peut instancier. Factory Method. Description : - PowerPoint PPT PresentationTRANSCRIPT
Design Patterns
Factory Method – Pattern de construction
[DAN
T]
Géni
e Lo
gici
el
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
Logi
ciel
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éni
e Lo
gici
el
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éni
e Lo
gici
el
4
Factory Method
[DAN
T]
Géni
e Lo
gici
el
5
Exemple :
Factory MethodStructure générique du pattern :
[DAN
T]
Géni
e Lo
gici
el
6
Produit Abstrait
[DAN
T]
Géni
e Lo
gici
el
7
Produits concrets
[DAN
T]
Géni
e Lo
gici
el
8
Produits concrets
[DAN
T]
Géni
e Lo
gici
el
9
Créateur Abstrait
[DAN
T]
Géni
e Lo
gici
el
10
Créateurs Concrets
[DAN
T]
Géni
e Lo
gici
el
11
Classe utilisatrice du Pattern
[DAN
T]
Géni
e Lo
gici
el
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éni
e Lo
gici
el
13