close

AspektJ

Gå til navigasjon Gå til søk

AspectJ er et aspektorientert programmeringsspråk bygget som en utvidelse av Java -språket som ble opprettet hos Xerox PARC . En AspectJ-kompilator skyver forestillingen om aspekt inn i virtuell maskinkode, og implementerer dermed en forestilling om relasjon. Skinnene i seg selv er skrevet i utvidet Java ved å generere en java-fil eller kompilert med maskinkode som er kompatibel med den som genereres av Java-kompilatorer.

AspectJ-funksjoner

  • Aspekter : Disse er definert som "innpakninger" av kode. De ser ut som Java-klasser.
  • Joinpoint : punkter i Java-kode hvor et aspekt kan avskjære klasser.
  • Pointcuts - Logisk sammenkoblede grupper av sammenføyningspunkter.
  • Råd : Dette er kodebiter assosiert med pointcuts, som injiserer en ny atferd på alle sammenføyningspunkter representert av pointcut.
  • Intertype-medlemserklæringer : lar et aspekt definere feltene og metodene som er implementert for flere klasser.

Fordeler og ulemper

Noen av fordelene med AspectJ-språket inkluderer:

  • AspectJ lar deg modellere kryssreferanser, og utvider dermed mulighetene til OOP.
  • Det er et kortfattet og eksplisitt språk designet for å tilby fordelene med modularitet.

På den annen side har AspectJ-språket følgende ulemper:

  • Uten et passende verktøy vil ikke programmereren forstå funksjonaliteten til hele systemet. For eksempel kan inter-type medlemmer ikke sees og aldri bli brukt.
  • Modellering, planlegging og kontroll er mye viktigere i utviklingsfasen. Aspekter må anerkjennes av designere, noe som letter oppgaven for programmerere.
  • Aspekter kan misbrukes. En programmerer kan implementere falsk funksjonalitet på ethvert utviklingsstadium og påvirke et bredt spekter av systemet. Kraften til POA kan være vanskelig å forstå.

Kompilatorer designet for AspectJ

Det er minst to AspectJ-kompilatorer:

  • ajc del av verktøyene som støttes av Eclipse -prosjektet , og
  • abc som er en kompilator, optimerer og utvidbar, produsert på aspectbench.org.

Eksterne lenker