Programmation orientée attributs - Attribute-oriented programming
La programmation orientée attributs ( @OP ) est une technique de marquage au niveau du programme. Les programmeurs peuvent marquer des éléments de programme (par exemple des classes et des méthodes) avec des attributs pour indiquer qu'ils maintiennent une sémantique spécifique à l'application ou au domaine. Par exemple, certains programmeurs peuvent définir un attribut "logging" et l'associer à une méthode pour indiquer que la méthode doit implémenter une fonction de journalisation, tandis que d'autres programmeurs peuvent définir un attribut "web service" et l'associer à une classe pour indiquer que la classe doit être implémenté en tant que service Web. Les attributs séparent la logique principale de l'application (ou logique métier ) de la sémantique spécifique à l'application ou au domaine (par exemple, les fonctions de journalisation et de service Web). En masquant les détails d'implémentation de ces sémantiques dans le code du programme, les attributs augmentent le niveau d'abstraction de la programmation et réduisent la complexité de la programmation, résultant en des programmes plus simples et plus lisibles. Les éléments de programme associés aux attributs sont transformés en programmes plus détaillés par un outil de support (par exemple un préprocesseur ). Par exemple, un préprocesseur peut insérer un programme de journalisation dans les méthodes associées à un attribut "logging".
Programmation orientée attributs dans divers langages
Java
Avec l'inclusion de Metadata Facility for Java (JSR-175) dans la version J2SE 5.0, il est possible d'utiliser la programmation orientée attributs dès la sortie de la boîte. La bibliothèque XDoclet permet d'utiliser une approche de programmation orientée attributs dans les versions antérieures de Java.
C#
Le langage C# a pris en charge les attributs depuis sa toute première version. Cependant, ces attributs sont utilisés pour fournir des informations d'exécution et ne sont pas utilisés par un préprocesseur (il n'y en a pas dans l'implémentation de référence de C#).
UML
Le langage de modélisation unifié (UML) prend en charge une sorte d'attribut appelé stéréotypes .
Pirater
Le langage de programmation Hack prend en charge les attributs. Des attributs peuvent être attachés à diverses entités de programme, et des informations sur ces attributs peuvent être récupérées au moment de l'exécution par réflexion.
Outils
- Outil de traitement des annotations (apt)
- Spoon , un transformateur de programme Java basé sur les annotations
- XDoclet , un générateur de programmes Javadoc
Les références
- "Programmation Orientée Attributs" . Une introduction à la programmation orientée attributs . Archivé de l'original le 26 mai 2005 . Consulté le 22 juillet 2005 .
- Wada, Hiroshi ; Suzuki, Junichi (2005). « Modélisation du système frontal de Turnpike : un cadre de développement axé sur les modèles tirant parti de la métamodélisation UML et de la programmation axée sur les attributs » (PDF) . En Proc. de la 8e conférence internationale ACM/IEEE sur les langages et systèmes d'ingénierie pilotés par les modèles (MoDELS/UML 2005). Archivé (PDF) de l'original le 03/03/2016 . Récupéré le 21/03/2006 .
- Rouvoy, Romain ; Merle, Philippe (2006). « Tirer parti de la programmation orientée composants avec la programmation orientée attributs » (PDF) . En Proc. du 11e Atelier international ECOOP sur la programmation orientée composants (WCOP 2006). Archivé de l'original (PDF) le 23/12/2006.
Liens externes
- Don Schwarz. Coup d'œil à l'intérieur de la boîte : programmation orientée attributs avec Java5
- Soleil JSR 175
- Attributs et réflexion - exemple de chapitre du livre Programming C#
- Modélisation du projet Turnpike
- Fraclet : Un modèle de programmation basé sur des annotations pour le modèle de composant Fractal
- Livre sur le développement de logiciels activés par les attributs