AspectJ

AspectJ est une extension orientée aspect, créée à Xerox PARC, pour le langage de programmation Java. Cette extension est disponible dans les projets open-source Eclipse, de manière autonome ou sous forme d'extension pour l'environnement de développement Eclipse. AspectJ est devenu le standard, du fait de son utilisation répandue, pour la Programmation orientée aspect en mettant l'accent sur la simplicité et la facilité de mise en œuvre pour les utilisateurs finaux. AspectJ se base sur la syntaxe du langage Java et s'intègre aux IDE pour afficher sa structure transversale depuis sa première publication en 2001.

Le tissage des aspects est réalisé sur les classes compilées. Ce tissage peut être établi au moment de la compilation du code source ou lors de l'exécution, lors du chargement des classes par la machine virtuelle[1].

Langage de description simple

Tout programme Java est compatible AspectJ. Toutefois, AspectJ permet également aux programmeurs de définir des constructions spéciales nommées "aspects". Les "aspects" peuvent contenir plusieurs entités inutilisables par des classes standard. On trouve :

  • Déclaration inter-types - permet au programmeur d’introduire des méthodes, champs ou interfaces à des classes existantes depuis l'"aspect". L'exemple suivant ajoute une méthode acceptVisitor (voir Visiteur (motif de conception)) à la classe Point :
aspect VisitAspect {
void Point.acceptVisitor(Visitor v) {
v.visit(this);
}
}
  • "Pointcut" - non traduit par convention ; pourrait se traduire par "Point de césure" - permet au programmeur de spécifier des "Join points" - non traduit par convention ; pourrait se traduire par "Point de jonction" - (définis à des moments clés de l'exécution d'un programme, comme l'appel à une méthode, l'instanciation d'objet ou l'accès à une variable). Tout "poincut" est une expression vérifiant la correspondance d'un "join point".

Par exemple, ce "pointcut" fait correspondre l'exécution de n'importe quelle méthode d'instance d'un objet de type Point dont le nom commence par set :

pointcut set() : execution(* set*(..) ) && this(Point);
  • "Advice" - non traduit par convention; pourrait se traduire par "Greffon" - permet au programmeur de spécifier le code à exécuter au "Join point" remplissant la condition d'un "pointcut". Les actions peuvent être exécutées avant, après ou autour du "Join point" spécifié. Ici, l'"advice" rafraîchit l'affichage à chaque fois que quelque chose de l'objet Point est set, grâce au "pointcut" définis plus tôt :
after () : set() {
Display.update();
}

AspectJ supporte également des formes statiques limitées de vérification et réutilisation d'aspect basées sur les "pointcuts" (par héritage).

Voir également

Références



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article AspectJ de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • AspectJ — Paradigm(s) aspect oriented Appeared in 2001 (2001) Developer Eclipse Foundation Stable release 1.6.11 (March 15, 2011; 7 months ago …   Wikipedia

  • AspectJ — Saltar a navegación, búsqueda AspectJ es un lenguaje de programación orientado por aspectos construido como una extensión del lenguaje Java creado en Xerox PARC. Un compilador de AspectJ hace llegar la noción de aspecto hacia el código de máquina …   Wikipedia Español

  • AspectJ — ist eine aspekt orientierte Erweiterung von Java, welche bei Xerox PARC entwickelt wurde und nun ein Open Source Projekt der Eclipse Foundation ist. Es ist als alleinstehendes Programm und als Eclipse Zusatzmodul verfügbar.[1]Ein AspectJ Compiler …   Deutsch Wikipedia

  • AspectJ — es un lenguaje de programación orientado por aspectos construido como una extensión del lenguaje Java creado en Xerox PARC. Un compilador de AspectJ hace llegar la noción de aspecto hacia el código de máquina virtual implementando así una noción… …   Enciclopedia Universal

  • Aspekt-orientierte Programmierung — Die Artikel Aspektorientierte Programmierung und Cross Cutting Concern überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen.… …   Deutsch Wikipedia

  • Aspektorientierung — Die Artikel Aspektorientierte Programmierung und Cross Cutting Concern überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen.… …   Deutsch Wikipedia

  • Aspect-oriented programming — (AOP) is a programming paradigm that increases modularity by allowing the separation of cross cutting concerns.Separation of concerns entails breaking down a program into distinct parts (so called concerns , cohesive areas of functionality). All… …   Wikipedia

  • Aspektorientierte Programmierung — (AOP) ist ein Programmierparadigma für die Objektorientierte Programmierung, um generische Funktionalitäten über mehrere Klassen hinweg zu verwenden (Cross Cutting Concern). Logische Aspekte eines Anwendungsprogramms werden dabei von der… …   Deutsch Wikipedia

  • Aspect-oriented software development — (AOSD) is an emerging software development technology that seeks new modularizations of software systems. AOSD allows multiple concerns to be expressed separately and automatically unified into working systems.Traditional software development has …   Wikipedia

  • Аспектно-ориентированное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”