java - uso - use case traduzione




Quali sono i possibili casi d'uso di AOP? (8)

Controllo runtime dei contratti di codice. I contratti di codice per .NET utilizzano AOP per

Runtime Checking. Il nostro reporter binario modifica un programma iniettando i contratti, che vengono controllati come parte dell'esecuzione del programma.

Mi piacerebbe fare una foto di quali sono i possibili casi per un coinvolgimento effettivo di AOP nella progettazione delle applicazioni. Tutto quello che ho incontrato finora è:

  • logging-correlato
  • controlli di sicurezza
  • gestione delle transazioni
  • modifica di un'applicazione legacy

Qualunque altra cosa?

(Non deve essere necessariamente AOP basato su proxy di Spring - piuttosto JOPoss AOP.)

( Domanda correlata )


InotifyPropertyChanged e simili orrori.

Fondamentalmente, ovunque ci sia un codice che assomigli a questo, usa un aspetto e hai finito.


Lo utilizziamo per la gestione delle licenze software, ovvero consente l'esecuzione del software solo se nel computer sono installate alcune licenze specifiche. Non è diverso dagli usi elencati, poiché è una forma di controllo di sicurezza.

Ho pubblicato un post di blog che descrive una implementazione pratica here


Per vedere la copertura di AOP in termini di applicabilità, vi consiglio vivamente di leggere il libro Aspect-Oriented-Software-Development-Use-Cases . Questo libro elabora casi d'uso di requisiti funzionali e non funzionali usando AOP. Dopodiché vedrai che gli aspetti possono essere utilizzati per più requisiti rispetto alla registrazione, alla traccia, alla sicurezza, ecc.


Raccomanderò anche aspetti per:

  • Chiamate al metodo asincrono
  • Monitoraggio

Con Spring e tcServer (sviluppatore), puoi facilmente monitorare tutti i tuoi bean Spring con l'annotazione @Component. È possibile visualizzare il tempo utilizzato, i dati di input e di ritorno incluse le eccezioni.



  • Gestione delle eccezioni: non è necessario ripetere l'orribile elenco di try ... catch, catch, catch ecc. - significa anche che la gestione delle eccezioni è garantita per essere coerente.
  • Monitoraggio delle prestazioni: molto utile poiché l'utilizzo di un aspetto non è intrusivo e può essere eseguito dopo il fatto e quindi disattivato quando non è più necessario.

  • Leggi / scrivi serrature . Invece di replicare lo stesso snippet, ho usato un aspetto per definire i metodi che richiedevano un blocco di lettura o un blocco esclusivo.






use-case