Programare orientată pe aspecte

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 4 mai 2020; verificările necesită 3 modificări .

Programarea orientată pe aspecte (AOP)  este o paradigmă de programare bazată pe ideea de separare a funcționalității pentru a îmbunătăți partiționarea programului în module .

Metodologia AOP a fost propusă de un grup de ingineri de la Centrul de Cercetare Xerox PARC condus de Gregor Kiczales. Ei au dezvoltat, de asemenea, o extensie orientată pe aspecte pentru limbajul Java , numită AspectJ  - (2001).

Motivație

Paradigmele de programare existente - procedurală , modulară , programare orientată pe obiecte (OOP) și proiectare orientată pe domeniu  - oferă anumite modalități de separare și evidențiere a funcționalității: funcții , module , clase , dar unele funcționalități care utilizează metodele propuse nu pot fi separate în entități separate. O astfel de funcționalitate se numește end-to- end (din engleză  scattered  - scattered sau engleză  tangled - intertwined), deoarece implementarea sa este distribuită între diferite module de program. Funcționalitatea end-to-end duce la un cod dispers și confuz, care este greu de înțeles și de întreținut.

Înregistrarea și gestionarea excepțiilor  sunt exemple tipice de funcționalitate transversală. Alte exemple: trasare ; autentificarea si verificarea drepturilor de acces ; programarea contractelor (în special, verificarea condițiilor pre și post). Pentru un program scris în paradigma OOP, orice funcționalitate care nu a fost descompusă este transmisă.

Cu toate acestea, conform unor autori [1] , AOP poate fi folosit cu succes și pentru a rezolva probleme de securitate, multithreading , managementul tranzacțiilor și multe altele.

Concepte de bază

Toate limbile AOP oferă un mijloc de a izola funcționalitatea end-to-end într-o entitate separată. Deoarece AspectJ este strămoșul acestei direcții, conceptele utilizate în această extensie s-au răspândit în majoritatea limbajelor AOP.

Concepte de bază ale AOP:

Note

  1. Mituri și realități ale AOP . IBM. Data accesului: 27 octombrie 2010. Arhivat din original pe 5 februarie 2012.

Link -uri

Literatură