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

Post on 04-Apr-2015

150 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related