Métaobjet
Eninformatique,plus précisément, enprogrammation objet,unmétaobjetest laréificationdes entités d'unobjet,comme soninterface,saclasse,sesméthodes,etc.
Description
[modifier|modifier le code]En informatique, un méta-objet est unobjetqui manipule, crée, décrit ou met en œuvre des objets (y compris lui-même). L'objet auquel le méta-objet se rapporte est appelé objet de base. Parmi les informations qu'un méta-objet peut définir figurent le type, l'interface,la classe, les méthodes, les attributs, l'arbre d'analyse, etc. de l'objet de base. Les métaobjets sont des exemples du concept informatique de réflexion, dans lequel un système a accès (généralement au moment de l'exécution) à sa propre structure interne. Laréflexionpermet à un système de se réécrire à la volée, de modifier sa propre mise en œuvre au fur et à mesure de son exécution[1].
Protocole de métaobjet
[modifier|modifier le code]Un protocole de métaobjet (MOP) fournit le vocabulaire (protocole) pour accéder et manipuler la structure et le comportement des systèmes d'objets. Les fonctions typiques d'un protocole de méta-objet sont les suivantes[2]:
- Créer ou supprimer une nouvelle classe
- Créer une nouvelle propriété ou méthode
- Faire en sorte qu'une classe hérite d'une autre classe ( "changer la structure de la classe" )
- Générer ou modifier le code définissant les méthodes d'une classe.
Un protocole pour les métaobjets n'obéit pas à l'aspect fermé duprincipe ouvert/fermé,selon lequel les systèmes logiciels doivent être ouverts à l'extension, mais fermés à la modification. Au contraire, un protocole de métaobjet expose de manière transparente la composition interne des objets et la structure complète de tous les objets contenus dans un système[3].
Applications
[modifier|modifier le code]Dans unlangage de programmation,un protocole pour les métaobjets fournit des facilités qui peuvent être utilisées pour mettre en œuvre laprogrammation orientée aspect.
Notes et références
[modifier|modifier le code]- (en)Brian CSmith,«Procedural Reflection In Programming Languages»,MIT Technical Report,noMIT-LCS-TR-272,(lire en ligne).
- (en)BrianFooteet Ralph Johnson, «Reflective Facilities in Smalltalk-80»,Oopsla '89, 1–6 octobre 1989,p.327–335(ISBN0897913337,DOI10.1145/74877.74911,lire en ligne).
- (en)SullivanGregory T.,«Aspect-oriented programming using reflection and metaobject protocols», surCommunications of the ACM,(DOI10.1145/383845.383865,consulté le),p.95–97.