CoClasses et factories de classes
Remonter à Serveurs COM
Un objet COM est une instance d'une CoClass, qui est une classe implémentant une ou plusieurs interfaces COM. L'objet COM fournit les services définis par ses interfaces.
Les CoClasses sont instanciées par un type d'objet spécial, appelé une factory de classe. Chaque fois que des services d'un objet sont demandés par un client, une factory de classe crée une instance de cet objet pour ce client particulier. Généralement, si un autre client demande les services de l'objet, la factory de classe crée une autre instance de l'objet pour ce deuxième client. Les clients peuvent également se lier à des objets COM en cours d'exécution qui se recensent eux-mêmes pour le gérer.
Une CoClasse doit posséder une factory de classe et un identificateur de classe (CLSID) de sorte qu'elle puisse être instancié en externe, c'est-à-dire pour un autre module. L'utilisation de ces identificateurs uniques pour les CoClasses implique qu'elles peuvent être mises à jour chaque fois que de nouvelles interfaces sont implémentées dans leur classe. Une nouvelle interface peut modifier ou ajouter des méthodes sans affecter les versions antérieures, ce qui est un problème courant lorsqu'on utilise des DLL.
Les experts de Delphi prennent en compte l'attribution d'identificateurs de classe, l'implémentation et l'instanciation des factory de classe.