Risposte:
Pensa a una preoccupazione come a un gruppo di funzionalità, ad esempio registrazione, controllo, sicurezza
Queste funzionalità sono sempre presenti nella maggior parte del codice, ma in realtà non vivono nelle nostre classi di animali> cani - sono funzionalità che dovrebbero vivere in molte classi - sono preoccupazioni trasversali .
Un Joinpoint è un punto nel codice in cui viene effettivamente eseguito il formato.
Un punto è come dire quale codice viene eseguito nel punto di congiunzione.
La tessitura - è quando il compilatore / sistema prende il tuo codice normale e include tutto il codice AOP in modo che inneschi il codice corretto, ecc. - Può pensare a questo come un ulteriore passo di pre-compilazione.
Un semplice esempio comprensibile è:
Si noti che la terminologia differisce leggermente tra le diverse implementazioni e i framework AOP.
Ogni definizione si basa su quelle precedenti.
Qualcosa che ti preoccupa (preoccupazione) ovunque (taglio trasversale) in tutta l'applicazione. ad es. registrazione o sicurezza
Un pezzo di codice che viene aggiunto automaticamente prima , dopo o entrambi ( intorno ) al codice esistente
Application code
|
|
|
|
\|/
|
JoinPoint ----------->("before" aspect, on the way in) // just before your intercepted application code
Pointcut start--------> public String myMethod(params ...)
//your application code
Pointcut finish--------> return (foo)
JoinPoint ----------->("after" aspect, on the way out) // just after your intercepted application code
|
\|/
|
|
|
Application code
Un posto nell'esecuzione del codice in cui viene eseguita parte dell'aspetto.
Il punto in cui il tuo aspetto "unisce" il punto. Ad un joinPoint "prima" avrai accesso ai parametri, a joinPoint "dopo" avrai accesso al valore restituito. Se viene generata un'eccezione, potrebbe essere necessario un "try-catch-finally" per gestirla o rilanciarla.
Il processo di aggiunta di aspetti attorno a un punto