Fabrication

( Factory Method )

separator line

package précédent white background package suivant

Rational Rose picture

Description


Lorsqu'un algorithme a besoin de créer un objet dont sa classe concrète est variable suivant le contexte, ce patron propose la délégation à une sous-classe de l'instanciation de cet objet.


Structure et constituants


Design Patterns picture

  • Creator définit une méthode dans laquelle un objet doit être créé et délègue cette instanciation à une de ses sous-classes par la définition de méthode à spécialiser (méthode newProduct),
  • Creator1 et Creator2 implantent de manière concrète l'instanciation de l'objet requis,
  • Product définit l'interface abstraite de l'objet qui est manipulé par Creator,
  • Product1 et Product2 implantent les comportements des objets à utiliser.

Collaborations


  • Creator délègue à ses sous-classes l'instanciation de l'objet requis.

Forces et faiblesses


Design Patterns picture    dispense d'avoir à spécifier directement l'objet à instancier et permet à une sous-classe de choisir l'objet concret voulu,

Design Patterns picture    dans certains cas, la spécialisation de la classe mère est effectuée uniquement pour spécifier l'instanciation (opération plus lourde par exemple que de passer en paramètre l'objet requis). Il est ainsi préférable d'utiliser ce patron lorsqu'il faut également pour d'autres raisons spécialiser la classe mère.


Utilisation dans CBR*Tools


Ce patron intervient dans différents algorithmes de CBR*Tools et notamment dans les protocoles internes des index pour la création des objets sauvegardant le résultat d'une recherche (de classe IndexResult) de manière à instancier les objets adéquats.




Separator line


Valid XHTML 1.0!

Valid CSS!

Comments

Last modified: Wed Aug 1 15:35:11 MEST 2001