POA

Les tisseurs d'aspect

Nous avons vu précédemment qu'un programme codé en orientée aspect peut être découpé en deux parties disjointes :

Le programme ne doit pas avoir connaissance des aspects, ils ne sont jamais appelés dans les classes du programme. Nous pouvons donc nous demander comment ces aspects sont appliqués sur le programme.

C'est le but des tisseurs d'aspects (ou aspect weaver), ils ont pour rôle de greffer l'ensemble des aspects sur l'ensemble des classes du programme. Les tisseurs d'aspect se différencient sur deux points :

L'opération de tissage peut être faite à la compilation ou à l'execution du programme. Les tisseurs statiques s'appliquent à la compilation du programme. Ils prennent en entrée un ensemble de classes et un ensemble d'aspects pour founir un programme compilé augmenté d'aspects. Ensuite, les tisseurs dynamiques sont, quant à eux, capables d'appliquer les aspects dynamiquement, pendant l'execution du programme. Leur principal atout est leur capacité à ajouter, supprimer ou modifer les aspects à chaud pendant l'execution du programme, ce qui est très utile pour les serveurs d'applications.

Voici une liste de quelques tisseurs d'aspects connus :

Language Tisseur Type
En Java AspectJ : Extension du langage Java.
JbossAOP : Extension du langage Java.
JAC (Java Aspect Components) : Framework 100% Java.
AspectWerkz : Framework 100% Java.
statique
dynamique et statique
dynamique
dynamique et statique
En C++ AspectC++
En C#, VB.NET AspectDNG statique
En PHP phpAspect statique
En C Aspect-C
En Caml Aspectual Caml

Valid HTML 4.01!