Reklama
Dzisiaj jest 10 stycznia 2025 r.
Chcę dodać własny artykuł
Reklama
Reklama
Reklama

AspectJ

AspectJ – Wprowadzenie

AspectJ jest rozszerzeniem języka Java, które wprowadza paradygmat programowania aspektowego. Opracowane przez zespół dr. Gregora Kiczalesa w Xerox PARC, pierwsza publiczna wersja ukazała się w 2001 roku.

Reklama

Podstawowe założenia

W programowaniu obiektowym, tak jak w Javie, główną jednostką modularności jest klasa. AspectJ dodaje aspekt jako nową jednostkę, która pozwala na implementację zagadnień dotyczących więcej niż jednej klasy. Kluczowym celem AspectJ jest separacja zagadnień i rozdzielenie kodu na niezależne funkcjonalnie części. Przecinanie struktur modularnych w AspectJ dzieli się na:

  • Statyczne: modyfikujące strukturę klas.
  • Dynamiczne: zmieniające zachowanie programu.

Składnia

AspectJ wprowadza nowe elementy składni, takie jak:

Reklama
  • Punkty złączeń (joinpoints)
  • Punkty przecięcia (pointcuts)
  • Rady (advices)
  • Aspekty

Punkty złączeń (joinpoints)

Punkty złączeń są atomowymi jednostkami opisu w programowaniu aspektowym, a ich typowe przykłady to:

  • Wykonanie metody lub konstruktora.
  • Odwołanie do pola w klasie.
  • Obsługa wyjątku.

Punkty przecięcia (pointcuts)

Punkty przecięcia grupują zbiory punktów złączeń. Mogą być dzielone na:

  • Proste punkty przecięcia: zbudowane z jednej klauzuli.
  • Punkty złożone: używają negacji, alternatywy lub koniunkcji.

Rady (advices)

Rady to bloki kodu wykonywane w momentach napotkania punktów przecięcia. Można je klasyfikować na:

  • before(): wykonywana przed punktem przecięcia.
  • after(): wykonywana po punkcie przecięcia.
  • around(): umożliwia zastąpienie oryginalnego kodu.

Aspekty

Aspekt jest główną jednostką modularności w AspectJ. Można go traktować jako wyspecjalizowaną klasę, która może przecinać implementację oraz modyfikować jej strukturę. Aspekty są zapisywane w plikach z rozszerzeniem „.aj”.

Tkanie (Weaving)

Tkanie to proces łączenia logiki obiektowej i aspektowej w wynikowym kodzie binarnym. Istnieją trzy metody tkania:

  • Tkanie w czasie kompilacji
  • Tkanie po kompilacji
  • Tkanie w czasie ładowania

AJDT

AJDT (AspectJ Development Tools) to wtyczka do Eclipse, która wspomaga pisanie kodu aspektowego, umożliwiając m.in. edycję plików źródłowych, analizę referencji oraz wizualizację punktów cięcia.

Reklama
Reklama