Confinement/délégation
Le mécanisme le plus courant pour la réutilisation d’objets dans COM est le confinement/délégation. Ce type de réutilisation est un concept familier que l’on retrouve dans la plupart des langages et systèmes orientés objet. L’objet externe, qui doit utiliser l’objet interne, agit comme un client d’objet pour l’objet interne. L’objet externe « contient » l’objet interne et, lorsque l’objet externe a besoin des 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, même s’il est certainement raisonnable de contenir un objet qui implémente une interface que l’objet externe ne fait pas et d’implémenter 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 le confinement pour un objet externe. L’objet externe crée les objets internes qu’il doit utiliser comme n’importe quel autre client. Ce n’est pas 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 string à part entière. Ensuite, à l’aide de 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