|
|
Définition de réflexion |
n. f. La réflexion est l'art de découvrir des types et d'invoquer leurs membres à l'exécution. La réflexion permet d'inspecter dynamiquement le contenu d'assemblages, d'en lire ses types, de créer des instances de ces types durant l'exécution du programme et d'appeler leurs méthodes ou champs dynamiquement. La réflexion est également appelée introspection suivant les auteurs, mais, avec l'arrivée de .NET, le terme réflexion s'est généralisé. On utilise également le terme de liaison tardive (late binding) pour décrire une instanciation à la volée au moment de l'exécution. Il existe d'autres mécanismes s'approchant de la réflexion utilisés avant .NET, comme RTTI (Run-Time Type Identification) en C/C++ ou, dans une certaine mesure, l'interface IDispatch pour les composants COM.
Certaines personnes, dont moi, pensent que la traduction du terme anglais reflection en réflexion est inappropriée. En effet, le terme introspection est nettement plus adapté et correspond mieux à la réalité du mécanisme. Cela dit, la majorité des livres et documents en français, ainsi que le MSDN, utilisent le terme de réflexion.
Tous les assemblages managés comportent des métadonnées qui décrivent le contenu de l'assemblage. En lisant ces métadonnées, un programme peut inspecter les types contenus dans l'assemblage, déterminer ses membres et les invoquer.
Les applications de la réflexion sont nombreuses, et beaucoup d'entres nous s'en servent tous les jours depuis longtemps sans s'en rendre compte. L'exemple le plus flagrant reste les environnements de développement évolués et leurs multiples fenêtres et outils : un explorateur de classes utilise la réflexion. Les membres des classes et les classes elles-mêmes, sont découvertes et ajoutées au fur et à mesure des actions du développeur.
Un autre exemple : la complétion de code. N'est-ce pas magnifique que, lorsque l'on tape un point après un identificateur d'objet en C# dans un environnement de développement comme Visual Studio, la liste de ses membres s'affiche? Dans ce cas aussi, le mécanisme repose sur la réflexion pour découvrir à la volée tous les membres de l'objet concerné. |
|
Ressources : .NET : Introduction à la réflexion, Introspection en JAVA, présentation de l'API Reflection |
Auteur : Olivier Brin (Emerica) - Articles sur .NET et C# |
Permalien : Définition de réflexion du dictionnaire Langages |
Date d'ajout : 13/02/2005 |
Date de dernière mise à jour : 13/02/2005 |
| |
|