close

AspektJ

Przejdź do nawigacji Przejdź do wyszukiwania

AspectJ to aspektowy język programowania zbudowany jako rozszerzenie języka Java stworzonego w Xerox PARC . Kompilator AspectJ umieszcza pojęcie aspektu w kodzie maszyny wirtualnej, implementując w ten sposób pojęcie relacji. Same skórki są pisane w rozszerzonej Javie poprzez wygenerowanie pliku java lub kompilowane przy użyciu kodu maszynowego zgodnego z kodem generowanym przez kompilatory Javy.

Funkcje AspectJ

  • Aspekty : definiuje się je jako „opakowania” kodu. Wyglądają jak klasy Java.
  • Joinpoint : punkty w kodzie Java, w których aspekt może przechwycić klasy.
  • Punkty — logicznie połączone grupy punktów łączenia.
  • Porady : są to fragmenty kodu powiązane z punktami przecięcia, które wprowadzają nowe zachowanie do wszystkich punktów przyłączenia reprezentowanych przez punkt przecięcia.
  • Deklaracje elementu międzytypowego : pozwalają aspektowi w pełni zdefiniować pola i metody zaimplementowane dla wielu klas.

Zalety i wady

Niektóre z zalet języka AspectJ to:

  • AspectJ pozwala na modelowanie odniesień krzyżowych, rozszerzając tym samym możliwości OOP.
  • Jest to zwięzły i jednoznaczny język zaprojektowany, aby oferować zalety modułowości.

Z drugiej strony język AspectJ ma następujące wady:

  • Bez odpowiedniego narzędzia programista nie zrozumie funkcjonalności całego systemu. Na przykład elementy członkowskie między typami mogą nie być widoczne i nigdy nie mogą być używane.
  • Modelowanie, planowanie i kontrola są znacznie ważniejsze w fazie rozwoju. Aspekty muszą być rozpoznane przez projektantów, co ułatwia programistom zadanie.
  • Aspekty mogą być nadużywane. Programista może zaimplementować fałszywą funkcjonalność na dowolnym etapie rozwoju i wpływać na szeroki zakres systemu. Moc POA może być trudna do zrozumienia.

Kompilatory zaprojektowane dla AspectJ

Istnieją co najmniej dwa kompilatory AspectJ:

  • ajc część narzędzi obsługiwanych przez projekt Eclipse oraz
  • abc , który jest kompilatorem, optymalizatorem i rozszerzalnym, produkowanym na stroniespectbench.org.

Linki zewnętrzne