Wróć do bloga
Encyklopedia9 września 2020

AOP

aop

AOP  (ang. Aspect Oriented Programming – programowanie zorientowane aspektowo) – paradygmat programowania, który ma na celu maksymalne rozdzielenie funkcjonalności – metody powinny robić tylko to za co są odpowiedzialne, przy jednoczesnym łączeniu ich tak aby tworzyły spójną, ale i czytelną całość.

Idealnym przykładem zastosowania AOP jest program odpowiedzialny za transakcje bankową. Oprócz głównej metody przelewającej środki istnieje wiele metod pobocznych o odrębnej funkcjonalności (logowanie, autoryzacja itd.), których implementację muszą się wzajemnie przeplatać, tak aby ostatecznie środki zostały przelane z jednego konta na konto docelowe. To czyni kod mniej czytelnym, bardziej podatnym na błędy.

Programowanie aspektowe zapobiega temu oddzielając fizycznie kod każdego zagadnienia poprzez umieszczenie ich w oddzielnych aspektach (moduł aplikacji zawierający konkretną funkcjonalność, którego implementacja przecina więcej niż jedną klasę) i logiczne zdefiniowanie punktów interakcji pomiędzy nimi.