Fabrique Abstraite
(
Abstract Factory
)
Lorsque différentes familles d'objets apparentés
doivent être représentées tout en masquant leurs
différences aux clients, ce patron propose la
définition d'une interface abstraite centralisée de
création d'un ensemble d'objets qui peut être
spécialisée.
Structure et
constituants
|
- Factory définit l'interface abstraite de création
d'une famille d'objets,
- Factory1 et Factory2 réalisent la création des
objets en encapsulant le choix des classes
concrètes,
- ProductA et ProductB définissent les interfaces
de manipulation des objets à manipuler dans une
famille,
- ProductA1, ProductA2,ProductB1 et ProductB2
définissent les comportements concrets des
objets,
- FactoryClient crée les objets d'une famille et
les manipule au travers de leur interface
abstraite.
- une fabrique délègue à ses sous-classes la
création effective des objets d'une famille,
- le client n'accède aux objets ainsi créés que par
leur interface abstraite,
- les objets d'une même famille peuvent coopérer
directement entre eux si nécessaire.
le maintien de la cohérence entre objets
est favorisé,
la substitution d'une classe concrète par
une autre est facilitée et reste masquée pour le
client,
si la coopération directe entre les objets
concrets est nécessaire, ces objets sont rendus moins
réutilisables et interchangeables.
Utilisation dans
CBR*Tools
|
Les objets nécessaires au raisonnement (phase de
raisonnement, cas cible, objets sauvegardant l'état du
raisonnement, etc.) représentent une famille dont la
cohérence doit être assurée. C'est pourquoi, une
fabrique abstraite (classe ReasonerFactory) est
utilisée pour réunir les opérations de création de ces
objets. Cette fabrique est spécialisée (classe
TimeExtendedReasonerFactory) de manière à déclarer les
opérations de création d'objets spécifiques pour
l'indexation par situations comportementales.;
Comments
Last modified: Wed Aug 1 15:45:32 MEST 2001
|