Pour utiliser ce modèle, une classe implémente une interface marqueur (également appelée interface d'étiquetage ), qui est une interface vide Les méthodes interagissant avec les instances de cette classe vérifient l'existence de cette interface. Alors qu'une interface classique spécifie les fonctionnalités (sous forme de déclarations de méthodes) qu'une classe implémentant l'interface doit prendre en charge, une interface marqueur n'y est pas obligée. La simple présence d'une telle interface indique un comportement spécifique de la part de la classe implémentant l'interface. Les interfaces hybrides, qui servent à la fois de marqueurs et spécifient les méthodes requises, sont possibles, mais peuvent s'avérer complexes si elles sont mal utilisées.
langage de programmation Java est l'transitoires peuvent être écrits dans un objet les métadonnées :- Le framework .NET et Java (depuis Java 5 (1.5)) prennent tous deux en charge ces métadonnées. En .NET, on les appelle « attributs personnalisés » , tandis qu'en Java, il s'agit d '« annotations » . Malgré cette différence de nom, leur concept est identique. Elles peuvent être définies sur les classes, les variables membres, les méthodes et leurs paramètres, et sont accessibles par réflexion . C++26 introduit une prise en charge similaire des annotations en C++ .
- En Python , le terme « interface marqueur » est courant dans Zope et Plone . Les interfaces sont déclarées comme métadonnées et les sous-classes peuvent les utiliser
implementsOnlypour indiquer qu'elles n'implémentent pas toutes les fonctionnalités de leurs superclasses.