Zpo-12-wyk-Slajd9
OOP a AOP
Różnica pomiędzy programowaniem obiektowym a programowaniem aspektowym nie polega na innym celu (w obu przypadkach chodzi o grupowanie podobnych koncepcji i separację różnych), ale na innym doborze narzędzi.
W przypadku programowania obiektowego podstawowymi narzędziami są pojęcie klasy, jej hermetyzacja i dziedziczenie. Zwykle pozwalają one stosować grupowanie koncepcji według jednego kryterium, co w części zastosowań jest wystarczające. Zaletą programowania obiektowego jest jego utrwalona i pewna pozycja na rynku, oraz oparcie w szerokiej gamie popularnych języków programowania.
Programowanie aspektowe zatem nie stoi w sprzeczności z założeniami ani narzędziami programowania obiektowego. Dodatkowym mechanizmem grupowania jest aspekt , reprezentujący pojedyncze zagadnienie (ang. concern ). Pozwala on na rozszerzenie możliwości grupowania na wiele kryteriów, w tym także przecinających się. Aspekt grupuje kod i reguły jego łączenia z innymi fragmentami programu.