| 
 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 
             
 
 |