Pensa a una preoccupazione come gruppo di funzionalità, ad es. registrazione, controllo, sicurezza
Queste funzionalità sono sempre presenti nella maggior parte del codice, ma in realtà non vivono nelle nostre classi di cani animali - sono funzionalità che dovrebbero vivere in molte classi - sono preoccupazioni trasversali .
-
Un Joinpoint è un posto nel codice in cui viene effettivamente eseguito il codice aspetto.
-
Un pointcut è come dire quale codice viene eseguito nel punto di congiunzione.
-
Weaving - è quando il compilatore / sistema prende il tuo codice normale e include tutto il codice AOP in modo che attivi il codice corretto ecc. - può considerarlo come una pre-compilazione extra passo.
Un esempio semplice e comprensibile è:
- Vogliamo tenere traccia di tutte le chiamate di metodo a scopo di debug (cioè vogliamo vedere quali metodi vengono chiamati in quale ordine).
- Creiamo un aspetto che registra il nome del metodo quando viene chiamato
- Creiamo i collegamenti che associano l'aspetto a tutti i metodi nel codice. Nella maggior parte dei framework AOP puoi farlo facilmente con alcuni caratteri jolly
- Ora abbiamo la registrazione di ogni metodo chiamato.
Tieni presente che la terminologia differisce leggermente tra diverse implementazioni e framework AOP.