design patterns factory method – pattern de construction [dant] génie logiciel 1

13
Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Upload: hubert-barbe

Post on 04-Apr-2015

150 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Design Patterns

Factory Method – Pattern de construction

[DAN

T]

Gén

ie L

ogic

iel

1

Page 2: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 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

Page 3: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

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

Page 4: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

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

Page 5: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Factory Method

[DAN

T]

Gén

ie L

ogic

iel

5

Exemple :

Page 6: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Factory MethodStructure générique du pattern :

[DAN

T]

Gén

ie L

ogic

iel

6

Page 7: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Produit Abstrait

[DAN

T]

Gén

ie L

ogic

iel

7

Page 8: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Produits concrets

[DAN

T]

Gén

ie L

ogic

iel

8

Page 9: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Produits concrets

[DAN

T]

Gén

ie L

ogic

iel

9

Page 10: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Créateur Abstrait

[DAN

T]

Gén

ie L

ogic

iel

10

Page 11: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Créateurs Concrets

[DAN

T]

Gén

ie L

ogic

iel

11

Page 12: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

Classe utilisatrice du Pattern

[DAN

T]

Gén

ie L

ogic

iel

12

Page 13: Design Patterns Factory Method – Pattern de construction [DANT] Génie Logiciel 1

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