Page d'accueil encyclopedie-enligne.com en page d'accueil
Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées

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.

Sommaire

1 Liens externes

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 entremêlement des appels de méthodes entre les différentes classes qui composent une 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, la procédure permettant de réaliser ces fonctionnalités va de façon typique 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 (ou après) tout appel à la méthode effectuant la transaction, un appel à la méthode de journalisation doit être effectué, en spécifiant ses paramètres. Ce principe de fonctionnement permet 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 quasiment nul en utilisant ce principe, ce qui présente de nombreux avantages :

Implémentations

Liens externes



This site support the Wikimedia Foundation. This Article originally from Wikipedia. All text is available under the terms of the GNU Free Documentation License Page HistoryOriginal ArticleWikipedia