|
|
La programmation orientée aspect (POA, en anglais aspect oriented programming - AOP) est une évolution de la programmation orientée objet.
| Table of contents |
|
2 Principe 3 Avantages 4 Implémentations |
On part d'un constat : les diverses fonctionnalités nécessaires au fonctionnement d'une application complexe provoquent un emmêlement des appels aux différentes classes qui composent l'application. Une classe va utiliser les services d'une autre classe pour arriver aux différents résultats attendus. Par exemple, si on considère une application bancaire servant à faire un virement d'un compte à un autre, duquel on attend deux fonctionnalités :
A l'inverse, en programmation orientée aspect, deux classes totalement distinctes vont être créées. On va ensuite créer un aspect, c'est à dire une structure qui va permettre de tramer les deux classes (cette structure est appelée classe de tramage en AspectJ), en permettant de spécifier que, avant tout appel à la méthode effectuant la transaction, un appel à la méthode de journalisation doit être effectué, de même qu'après, en spécifiant les paramètres, ce qui va permettre de gérer les 2 classes de manière totalement distincte, sans se préoccuper de la manière dont elles vont interagir.
Un aspect permet donc de définir :
Le couplage entre les classes est quasiement nul en utilisant ce principe, ce qui a de nombreux avantages :
Carence de la programmation orientée objet
En programmation orientée objet, le programme permettant de réaliser ces fonctionnalités va typiquement combiner la gestion de la journalisation au code gêrant la transaction.Principe
Avantages
Implémentations