Zpo-12-wyk-Slajd37

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Zmiana struktury klasy

Zmiana struktury klasy


Poza modyfikacją zachowania programu, aspekty mogą także zmieniać jego strukturę. Modyfikacje struktury kodu są znany pod nazwą wprowadzeń (ang. introductions ).

Możliwe zmiany obejmują

  • dodanie nowych składowych (konstruktorów, metod i pól) w wybranej klasie lub klasach
  • dodanie implementacji interfejsu do wybranej klasy
  • wprowadzenie dziedziczenia klasy po innej klasie
  • zmianę poziomu widoczności składowych w klasie.

Aspekt dodaje składowe do klasy, podając ich deklaracje poprzedzone nazwą klasy. Specyfikując zasięg widoczności składowej należy pamiętać, że odnosi się on do bieżącego aspektu, a nie docelowej klasy. Oznacza to, że oryginalne pola i metody prywatne klasy nie będą miały dostępu do składowej zdefiniowanej w postaci aspektu.

Definiowanie nowych składowych rodzi również niebezpieczeństwo konfliktu w sytuacji, gdy składowa taka już istnieje w docelowej klasie. Kompilator aspektów zapobiega takiej sytuacji, sygnalizując błąd kompilacji. Konflikty pomiędzy różnymi aspektami są rozwiązywane w bardziej zaawansowany sposób, który jednak nie będzie omawiany.

W podanym przykładzie aspekt Maniery dodaje do klasy Klasa prywtne pole czas oraz metodę ustawCzas ().


<< Poprzedni slajd | Spis treści | Następny slajd >>