Définition de l’AOP

Qu’est ce que : Définition de l’AOP

La modularité, c’est-à-dire le fait de pouvoir diviser une tâche complexe en plusieurs composants liés entre eux mais suffisamment indépendants pour qu’ils puissent être réutilisés, aussi bien lors de l’exécution d’un même programme que dans d’autres développements, est l’un des ‘saint Graal’ de la programmation.Il ne faut donc pas s’étonner qu’au fil des années de pratique de l’informatique, plusieurs philosophies de programmation soient apparues, qui cherchent à mettre en pratique cette philosophie de réutilisation du code source, et de nombreux langages de programmation qui la mettent en œuvre.
L’une de ces philosophies est la programmation orientée objet, et son évolution naturelle qui cherche à aller un peu plus loin est la programmation orientée aspect (POA).

Nous entendons par POA la manière de concevoir et de structurer le code source d’une application informatique, afin que ses différents éléments soient encapsulés et bien définis en vue d’une réutilisation ultérieure.

-Grâce à la POA, la lecture du code source se référant à un objet (sa définition et les actions que nous pouvons effectuer avec lui) permet au lecteur de le comprendre dans son ensemble sans avoir besoin d’un contexte plus large, ce qui permet d’une part de réduire la répétition du code source et, d’autre part, de modulariser complètement les applications.

Le A dans AOP signifie Aspect, et cela désigne une fonctionnalité transversale de l’ensemble de l’application qui sera mise en œuvre dans un module distinct de la partie plus fonctionnelle du programme.

Il s’agit, d’un point de vue conceptuel, d’un élément utilisé de manière répétée et à différents endroits dans le code source d’une application, et qui est encapsulé et isolé du reste du code de sorte qu’il peut être modifié sans affecter le reste du code source.
De cette façon, un aspect peut être appelé à partir de n’importe quelle partie du code sans que le programmeur ait besoin de connaître son fonctionnement interne. La POA facilite également le travail d’une équipe de développeurs, puisque certains ne doivent pas nécessairement connaître les détails du fonctionnement interne du code source créé par d’autres.

Le Conseil est l’implémentation en code d’un aspect.

Il s’agit d’un module autonome de l’application qui peut à la fois être appelé à partir de différentes parties du code de la même application pour laquelle il a été développé, et être réutilisé dans d’autres applications qui doivent utiliser le même aspect, puisque son encapsulation est totale.

La référence à un aspect dans le code source est appelée un point de jonction.

Le point de jonction est un appel à une méthode, qui sera le conseil. La seule chose qui la différencie d’un appel classique est l’encapsulation de l’objet de l’appel.
Il s’agit d’une manière de modifier la fonctionnalité d’une application sur un élément donné sans devoir apporter des changements au code source en modifiant certains de ses aspects (d’où le nom de cette philosophie et de ce mode de développement).

En tant que philosophie de programmation, la POA peut être réalisée dans des langages existants, il n’est pas nécessaire de créer de nouveaux langages.

Il existe toutefois des frameworks qui facilitent cette tâche pour les langages existants, tels que C++ ou PHP. C’est le cas de Spring pour Java, AspectC++ pour C++, ou Aspyct AOP pour Python.