close

AspectJ

Aller à la navigation Aller à la recherche

AspectJ est un langage de programmation orienté aspect construit comme une extension du langage Java créé au Xerox PARC . Un compilateur AspectJ pousse la notion d'aspect dans le code de la machine virtuelle, implémentant ainsi une notion de relation. Les skins eux-mêmes sont écrits en Java étendu en générant un fichier java ou compilés avec un code machine compatible avec celui généré par les compilateurs Java.

Fonctionnalités d'AspectJ

  • Aspects : Ceux-ci sont définis comme des "wrappers" de code. Ils ressemblent à des classes Java.
  • Joinpoint : points dans le code Java où un aspect peut intercepter des classes.
  • Pointcuts - Groupes logiquement concaténés de points de jonction.
  • Conseils : Ce sont des morceaux de code associés aux pointcuts, qui injectent un nouveau comportement sur tous les joinpoints représentés par le pointcut.
  • Déclarations de membres intertypes : permettent à un aspect de définir entièrement les champs et les méthodes implémentés pour plusieurs classes.

Avantages et inconvénients

Certains des avantages du langage AspectJ incluent :

  • AspectJ permet de modéliser des références croisées, étendant ainsi les possibilités de la POO.
  • C'est un langage concis et explicite conçu pour offrir les avantages de la modularité.

En revanche, le langage AspectJ présente les inconvénients suivants :

  • Sans un outil approprié, le programmeur ne comprendra pas la fonctionnalité du système complet. Par exemple, les membres inter-types peuvent ne pas être vus et ne jamais être utilisés.
  • La modélisation, la planification et le contrôle sont beaucoup plus importants dans la phase de développement. Les aspects doivent être reconnus par les concepteurs, ce qui allège la tâche des programmeurs.
  • Les aspects peuvent être mal utilisés. Un programmeur peut implémenter de fausses fonctionnalités à n'importe quel stade de développement et affecter une large gamme du système. La puissance de la POA peut être difficile à comprendre.

Compilateurs conçus pour AspectJ

Il existe au moins deux compilateurs AspectJ :

  • ajc fait partie des outils supportés par le projet Eclipse , et
  • abc qui est un compilateur, optimiseur et extensible, produit sur aspectbench.org.

Liens externes