close

AspectJ

Přejít na navigaci Přejít na hledání

AspectJ je aspektově orientovaný programovací jazyk vytvořený jako rozšíření jazyka Java vytvořeného v Xerox PARC . Kompilátor AspectJ vkládá pojem aspektu do kódu virtuálního stroje, čímž implementuje pojem vztahu. Samotné vzhledy jsou napsány v rozšířené Javě generováním souboru java nebo kompilovány se strojovým kódem kompatibilním s kódem generovaným kompilátory Java.

Funkce AspectJ

  • Aspekty : Jsou definovány jako „obaly“ kódu. Vypadají jako třídy Java.
  • Joinpoint : body v kódu Java, kde může aspekt zachytit třídy.
  • Pointcuts – Logicky zřetězené skupiny bodů spojení.
  • Rady : Jedná se o části kódu spojené s bodovými řezy, které vkládají nové chování do všech spojovacích bodů reprezentovaných bodovým řezem.
  • Mezitypové deklarace členů : umožňují aspektu plně definovat pole a metody implementované pro více tříd.

Výhody a nevýhody

Některé z výhod jazyka AspectJ zahrnují:

  • AspectJ umožňuje modelovat křížové odkazy, čímž rozšiřuje možnosti OOP.
  • Je to stručný a explicitní jazyk navržený tak, aby nabízel výhody modularity.

Na druhou stranu jazyk AspectJ nabízí následující nevýhody:

  • Bez vhodného nástroje programátor nepochopí funkčnost celého systému. Například mezitypové členy nemusí být vidět a nemusí být nikdy použity.
  • Modelování, plánování a kontrola jsou mnohem důležitější ve fázi vývoje. Aspekty musí rozpoznat designéři, což programátorům zjednodušuje úkol.
  • Aspekty mohou být zneužity. Programátor může implementovat falešné funkce v jakékoli fázi vývoje a ovlivnit širokou škálu systému. Sílu POA může být těžké pochopit.

Kompilátory navržené pro AspectJ

Existují alespoň dva kompilátory AspectJ:

  • ajc součástí nástrojů podporovaných projektem Eclipse a
  • abc , což je kompilátor, optimalizátor a rozšiřitelný, vytvořený na aspectbench.org.

Externí odkazy