Implémentation de IInterface
Remonter à Utilisation des interfaces
Tout comme tous les objets dérivent, directement ou indirectement, de TObject, toutes les interfaces dérivent de l'interface IInterface. IInterface fournit l'interrogation dynamique et la gestion de la durée de vie de l'interface. Ces fonctionnalités sont définies dans les trois méthodes de IInterface :
- QueryInterface interroge dynamiquement un objet donné pour obtenir les références des interfaces gérées par l'objet.
- _AddRef est une méthode de comptage de références qui incrémente le compteur à chaque appel réussi de QueryInterface. Tant que le compteur de références n'est pas nul, l'objet doit rester en mémoire.
- _Release est utilisée avec _AddRef pour permettre à un objet de connaître sa durée de vie et de déterminer s'il peut se supprimer lui-même. Quand le compteur de références atteint zéro, l'objet est libéré de la mémoire. Chaque classe qui implémente des interfaces doit implémenter les trois méthodes de IInterface, les autres méthodes déclarées dans toutes ses interfaces ancêtres, ainsi que toutes les méthodes déclarées dans l'interface même. Néanmoins, vous pouvez hériter de l'implémentation des méthodes d'interface déclarées dans votre classe.
En implémentant vous-même ces méthodes, vous bénéficiez d'un moyen supplémentaire de gestion de la durée de vie désactivant le mécanisme de comptage de références. C'est une technique puissante qui permet de découpler les interfaces du comptage de références.