C'est quoi la programmation orienté aspect ???
quelles sont ses caractéristiques??
C'est quoi la programmation orienté aspect ???
quelles sont ses caractéristiques??
Ce n'est rien d'officiel mais je le vois comme ceci:
Plutôt que de prévoir l'encapsulation de service dans le code : par exemple ouvrir une transaction quand j'exécute tel méthode, rejouer la méthode si j'ai une exception, logger, etc.
Tu conçois le corps de ta méthode sans te soucier de ses "aspects" (au sens littéral et pas de la programmation), puis ensuite tu viendras concevoir ces aspects (aux deux sens du terme) qui viendront se greffer pour ajouter du comportement.
Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
Ceylon : Installation - Concepts de base - Typage - Appels et arguments
ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
Une solution vous convient ? N'oubliez pas le tag
Signature par pitipoisson
en gros, ca consiste à retirer du code de tes méthode toute la logique transversale, c'est à dire une logique qui est commune à pas mal de méthode, qui doit être systématiquement implémentée et presque toujours de la même manière.
On va faire de cette logique des aspect et greffer séparément ces aspects sur les méthodes.
Exemple: la méthode est "transactionnelle" -> on va gérer la transaction une fois pour toutes ailleurs. La méthode dois être mesurées -> on va greffer du code qui mesurer la différence de temps et éventuellement log le ralentissement. etc.
A l'usage on se rend compte, et c'est là que spring interviens, que ce sont toujours les même aspect qui sont utilisés par tout le monde (transaction, logger, détournement pour faire du test unitaire, ....) et spring fournis un certains nombre d'aspect qu'on peux gérer par une simpel annotation (@Configurable et @Transaction par exemple)
Merci pour vos réponse !!! je commence à comprendre les choses .
je suis encore novice en Spring et j'essaye de le comprendre théoriquement avant de passer à la pratique![]()
Partager