Lors de la conception d’un programme orienté objet, le développeur est bien souvent confronté à la mise en oeuvre de fonctionnalités transverses comme la journalisation, la sécurité ou encore les transactions.
La programmation orientée aspect (ou AOP pour Aspect Oriented Programming) apporte une solution propre à ces " problèmes " de modélisation en permettant le tissage littéralement " weaving " en anglais) avec le code métier de ces fonctions transversales. Dans la figure ci-contre, j’ai tenté de représenter des fils d’exécution d’un programme (typiquement cela pourrait être une classe ou une méthode). Le principe de l’AOP est de déterminer une condition d’action (définie par un pointcut) à un moment de l’exécution du programme (défini par un joinpoint) afin d’y adjoindre un comportement supplémentaire ou remplaçant le comportement existant (advice). Pour donner un peu plus de clarté à cette description particulièrement concise, illustrons tout ceci autour d’un exemple simple de réalisation, qui permettra d’une part de comprendre le vocabulaire, mais aussi d’autre part d’apprendre à programmer en AOP avec Eclipse. Pour cet article, j’ai choisi d’utiliser AspectJ qui est une implémentation AOP particulièrement renommée pour son exhaustivité mais aussi la qualité de son outillage Eclipse avec AJDT (AspectJ Development Tools).