Endiguement/délégation
Le mécanisme le plus courant pour la réutilisation d’objets dans COM est de confinement/délégation . Ce type de réutilisation est un concept familier trouvé dans la plupart des langages et systèmes orientés objet. L’objet externe, qui doit utiliser l’objet interne, agit en tant que client d’objet à l’objet interne. L’objet externe « contient » l’objet interne et, lorsque l’objet externe nécessite les services de l’objet interne, l’objet externe délègue explicitement l’implémentation aux méthodes de l’objet interne. Autrement dit, l’objet externe utilise les services de l’objet interne pour s’implémenter lui-même.
Il n’est pas nécessaire que les objets externes et internes prennent en charge les mêmes interfaces, bien qu’il soit certainement raisonnable de contenir un objet qui implémente une interface que l’objet externe ne fait pas et implémente les méthodes de l’objet externe simplement comme des appels aux méthodes correspondantes dans l’objet interne. Toutefois, lorsque la complexité des objets externes et internes diffère considérablement, l’objet externe peut implémenter certaines des méthodes de ses interfaces en déléguant les appels aux méthodes d’interface implémentées dans l’objet interne.
Il est simple d’implémenter l’endiguement pour un objet externe. L’objet externe crée les objets internes qu’il doit utiliser comme tout autre client. Ce n’est rien de nouveau : le processus est semblable à un objet C++ qui contient lui-même un objet de chaîne C++ qu’il utilise pour effectuer certaines fonctions de chaîne, même si l’objet externe n’est pas considéré comme un objet de chaîne à son propre droit. Ensuite, en utilisant son pointeur vers l’objet interne, un appel à une méthode dans l’objet externe génère un appel à une méthode d’objet interne.
Rubriques connexes