I miei due centesimi sulla programmazione orientata agli aspetti

AOP (aspect-oriented programming) è uno stile di programmazione che può essere adottato per definire determinate politiche che a loro volta vengono utilizzate per definire e gestire le problematiche trasversali in un'applicazione. In sostanza, è un paradigma di programmazione che consente alla tua applicazione di adattarsi ai cambiamenti.

Quindi, quando si sfrutta l'AOP nelle proprie applicazioni, è possibile aumentare la modularità della propria applicazione separando le preoccupazioni. È possibile utilizzare AOP per ridurre l'ingombro di codice migliorando la leggibilità e la manutenibilità del codice.

Va notato che AOP è solo un nuovo paradigma di programmazione - non sostituisce in alcun modo l'OOP. Piuttosto, integra l'OOP fornendo un altro modo per ottenere la modularità e anche ridurre l'ingombro di codice.

In AOP, un aspetto può essere definito come la modularizzazione di una preoccupazione. Quindi, questo stile di programmazione è chiamato programmazione orientata agli aspetti. In OOP puoi sfruttare le classi per ottenere la modularità. Al contrario, puoi ottenere la modularità in AOP attraverso gli aspetti.

L'essenza di AOP è incapsulare funzionalità comuni e allo stesso tempo consentire alla tua applicazione di sfruttare quelle funzionalità secondo necessità. Tali funzionalità comuni o problemi trasversali includono la gestione della sicurezza, la registrazione, le notifiche, la gestione delle transazioni, la gestione delle eccezioni, ecc. Alcuni dei framework AOP popolari includono: PostSharp, Spring framework, Castle Windsor, Microsoft Unity framework, Policy Injection Block, ecc.

Acquisire familiarità con le terminologie AOP

Quando lavori con AOP, dovresti avere familiarità con alcuni dei concetti chiave di esso. Questi includono quanto segue:

  • Aspetto: un problema trasversale o un modulo riutilizzabile. Puoi avere uno o più aspetti in un'applicazione.
  • Introduzione: una funzionalità utilizzata per dichiarare metodi e attributi aggiuntivi per un particolare tipo.
  • Punto di unione: un punto in cui è possibile collegare un aspetto.
  • Consiglio: l'azione che viene eseguita in un particolare punto di unione. Viene anche utilizzato per definire l'azione che deve essere eseguita prima o dopo l'esecuzione di un metodo.
  • Tessitura: fornisce la soluzione al codice intricato. Consente di collegare diversi aspetti con altri oggetti dell'applicazione. Nota che a seconda di quando avverrà la tessitura, puoi avere tempo di compilazione, tempo di caricamento o tessitura in fase di esecuzione.
  • Oggetto di destinazione: un oggetto di destinazione può essere definito come consigliato da uno o più aspetti nell'applicazione.
  • Pointcut: specifica le regole di tessitura, ovvero viene utilizzato per definire il punto di unione in cui è possibile applicare un particolare consiglio nell'applicazione.

Perché dovrei usare comunque l'AOP?

OOP promuove già la riusabilità e la flessibilità del codice. Allora, perché hai bisogno di AOP? AOP è un paradigma di programmazione che ha anche tutti i vantaggi dell'OOP. Inoltre, è possibile promuovere l'accoppiamento libero e consentire alla propria applicazione di utilizzare aspetti collegabili come e quando necessario, senza modificare il codice dell'applicazione. Utilizzando AOP, puoi concentrarti sulla logica di business della tua applicazione e allo stesso tempo intrecciare gli aspetti alla logica di business. Uno dei principali vantaggi dell'utilizzo di AOP è che è sufficiente scrivere i propri aspetti una volta e poi riutilizzarli ovunque sia necessario nella propria applicazione. Quindi, AOP è un ottimo modo per ridurre la complessità del codice sorgente della tua applicazione e rendere il tuo codice pulito. I vantaggi di AOP includono:

  • Ingombro di codice ridotto
  • Ridondanza del codice ridotta
  • Manutenzione del codice più semplice
  • Sviluppo più veloce
  • Leggibilità del codice migliorata

Come ottengo AOP nella mia domanda?

Per implementare AOP nelle tue applicazioni, la prima cosa che devi fare è isolare gli aspetti nella tua applicazione dalla logica di business. La cosa più importante da tenere a mente durante la progettazione degli aspetti è che dovrebbero essere indipendenti e non dovrebbero dipendere dall'applicazione. Dovresti anche essere in grado di testare gli aspetti indipendentemente l'uno dall'altro. Successivamente, dovresti applicare questi aspetti al codice sorgente dell'applicazione intrecciandoli ovunque siano necessari per l'applicazione. Uno dei modi in cui puoi implementare AOP nelle tue applicazioni è attraverso l'uso di attributi.