Zpo-12-wyk-Slajd33

Z Studia Informatyczne
Wersja z dnia 07:40, 21 sie 2006 autorstwa Bwalter (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Przykład: porada around()

Przykład: porada around()


Przykładem zastosowania porady around () jest przedstawiony na slajdzie aspekt. Porada around () zbiera kontekst, którym jest parametr wywołania oryginalnej metody o nazwie rozpoczynającej się od słowa powiedz (). Treść porady składa się z polecenia wyświetlenia napisu "przechwytuję metodę", następnie wywołania oryginalnej metody dopasowanej przez poradę (służąca do tego klauzula proceed () może przyjmować parametry odpowiadające parametrami kontekstu, w jakim została wykonana porada), wyświetleniu kolejnego napisu i zwróceniu jako wyniku napisu "coś innego". W ten sposób została zdefiniowana alternatywna treść metody powiedz ().

Metoda powiedz () przyjmuje parametr będący imieniem osoby do pozdrowienia, wyświetla pozdrowienia, a następnie zwraca przekazane imię.

W metodzie main () metoda powiedz () zostaje wykonana z argumentem "Olu". Powoduje to wywołanie wskazanej metody, jednak już po uruchomieniu jej osiągnięty zostanie punkt złączenia opisany w poradzie. Treść metody powiedz () będzie efektywnie zastąpiona przez treść porady. Ponieważ jednak porada wywołuje oryginalną metodę, więc efekt jej działania w postaci napisu także będzie widoczny. Zmianie ulegnie jednak wartość zwracana przez metodę: zamiast napisu "Olu" będzie ona brzmiała "coś innego".

Wynikiem uruchomienia tego aspektu będzie zatem sekwencja:

przechwytuję metodę

Witaj, Olu

koniec przechwycenia

powiedziałem: coś innego


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