UtseendeJ

UtseendeJ

Informasjon
Utviklet av Eclipse Foundation
Første versjon 2001
Siste versjon 1.9.2 (23. oktober 2018)
Avansert versjon 1.9.3RC1 (7. mars 2019)
Innskudd git: //git.eclipse.org/gitroot/aspectj/org.aspectj.git og git.eclipse.org/r/aspectj/org.aspectj
Skrevet i Java
Operativsystem Multiplatform
Type Programmeringsspråk
Tillatelse Formørkelselisens
Nettsted www.eclipse.org/aspectj

AspectJ er en aspektorientert utvidelse , opprettet på Xerox PARC , for Java- programmeringsspråket . Denne utvidelsen er tilgjengelig i Eclipse- prosjekter med åpen kildekode , frittstående eller som en utvidelse for Eclipse-utviklingsmiljøet . AspectJ har blitt standarden, på grunn av den utbredte bruken, for Aspect Oriented Programming med vekt på enkelhet og enkel implementering for sluttbrukere. AspectJ er basert på syntaksen til Java- språket og integreres med IDEer for å vise den tverrgående strukturen siden den første publikasjonen i 2001.

Veving av aspekter utføres på de kompilerte klassene. Denne vevingen kan etableres når kildekoden er kompilert eller ved kjøretid, når klassene lastes av den virtuelle maskinen.

Enkel beskrivelsesspråk

Ethvert Java- program er AspectJ-kompatibelt. Imidlertid tillater AspectJ også programmerere å definere spesielle konstruksjoner som kalles "aspekter" . "Aspekter" kan inneholde flere enheter som ikke kan brukes av standardklasser. Vi finner :

aspect VisitAspect { void Point.acceptVisitor(Visitor v) { v.visit(this); } }
  • " Pointcut " - ikke oversatt av konvensjonen; kunne oversette til "Orddelingspunkt" - lar programmereren spesifisere " Slå sammen poeng " - ikke oversatt etter konvensjon; kan oversettes som "Junction point" - (definert i viktige øyeblikk i utførelsen av et program, for eksempel å ringe en metode, instantere et objekt eller få tilgang til en variabel). Ethvert "punkt" er et uttrykk som sjekker korrespondansen til et "sammenkoblingspunkt".

For eksempel samsvarer denne "snarveien" med kjøringen av en hvilken som helst metode for en forekomst av et objekt av typen Pointhvis navn begynner med set :

pointcut set() : execution(* set*(..) ) && this(Point);
  • " Råd " - ikke oversatt av konvensjonen; kan oversettes til "Plugin" - lar programmereren spesifisere koden som skal utføres på " Join point " som oppfyller betingelsen for en " pointcut ". Handlinger kan utføres før , etter eller rundt det angitte " Join point ". Her oppdaterer "rådet" skjermen når noe av objektet Pointer set, takket være "snarveien" som er definert tidligere:
after () : set() { Display.update(); }

AspectJ støtter også begrensede statiske former for punktkuttbasert aspektkontroll og gjenbruk (ved arv).

Se også

Referanser

  1. "  https://git.eclipse.org/c/aspectj/org.aspectj.git/refs/  " (Skrevet 6. september 2019 )
  2. http://www.eclipse.org/aspectj/doc/next/devguide/ltw.html