AspectJ : La programmation orientée aspect pour Java

“Aspect” ? Et l’objet alors, c’est plus à la mode ?

Marwan Mehenni
2 min readMay 15, 2017

Disons, pour faire court, que l’on ne répond pas aux mêmes besoins ! Le paradigme de programmation orientée aspect (POA) est breveté en 1999 par G. Kiczales, de Xerox. Le besoin de ce nouveau paradigme vient de l’évolution des méthodes dans le développement d’applications.

En effet, lors de la conception de logiciels ou d’applications conséquentes en terme de quantité de code, il convient de séparer les modules ne faisant pas la même chose, du point de vue de l’application. En effet, on aura par exemple un module gérant la journalisation des données, un autre qui se chargera de l’interface utilisateur, etc. En POA, ces modules sont considérés comme des aspects, gérant un aspect technique particulier.

Considérer la POA dès la conception d’une application permet donc de s’affranchir des problèmes d’enchevêtrement du code, en séparant les aspects. Ainsi, le code d’un aspect sera exclusivement dédié à son objectif au sein de l’application. Cela améliore grandement le parallélisme du code, rendant ainsi la maintenance et la réutilisation du code bien plus aisées.

Et concrètement, comment ça marche ?

AspectJ se présente comme une extension directe de Java, disponible sur l’IDE Eclipse. C’est le langage orienté aspect le plus utilisé, bien que des équivalents existent pour d’autres langages. Pour comprendre l’utilisation d’AspectJ, il faut définir trois termes fondamentaux dans la POA :

  • Le greffon : programme qui s’exécutera à un point défini dans l’application appelé point de jonction.
  • Point de jonction (joinpoint) : endroit défini dans le code comme pouvant accueillir un greffon. Un ensemble de ces points est appelé une coupe (pointcut).
  • Tissage : gestion statique ou dynamique des appels aux greffons dans le logiciel.
Notion de tisseur (on peut le voir comme un compilateur)

AspectJ est donc un tisseur d’aspect, qui insère les greffons aux points spécifiés par le développeur. Celui-ci définit donc des aspects, dans lesquels il écrit ses greffons ou définit des méthodes, avant de spécifier les points de jointure avec les autres classes du projet. Ces aspects sont donc ajoutés à du code Java déjà écrit par tissage, ainsi tous les programmes Java sont compatibles AspectJ.

En conclusion, la programmation orientée aspect permet une organisation plus modulaire du code en repensant la conception du projet, prévoyant la gestion indépendante des modules selon leur aspect technique.

Le Guide officiel de AspectJ

Crédit image

--

--