Programmation orientée aspect

La programmation orientée aspect (POA, en anglais aspect oriented programming - AOP) est une évolution de la programmation orientée objet.

Table of contents
1 Carence de la programmation orientée objet
2 Principe
3 Avantages
4 Implémentations

Carence de la programmation orientée objet

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 :

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

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 :

Avantages

Le couplage entre les classes est quasiement nul en utilisant ce principe, ce qui a de nombreux avantages :

Implémentations