Joinpoint : Un point de jonction est un candidat point dans le Exécution du programme de l'application où un aspect peut être branché. Ce point peut être l'appel d'une méthode, la levée d'une exception ou même la modification d'un champ. Ce sont les points où le code de votre aspect peut être inséré dans le flux normal de votre application pour ajouter un nouveau comportement.
Conseil : Il s'agit d'un objet qui comprend des invocations d'API aux préoccupations générales du système représentant l'action à effectuer à un point de jonction spécifié par un point.
Un raccourci : Une coupe ponctuelle définit à quels points de jonction, les conseils associés doivent être appliqués. Les conseils peuvent être appliqués à n'importe quel point de jonction pris en charge par le cadre de la POA. Bien entendu, vous ne souhaitez pas appliquer tous vos aspects à tous les points de jonction possibles. Les coupes transversales vous permettent de spécifier où vous voulez que vos conseils soient appliqués. Souvent, vous spécifiez ces points de jonction en utilisant des noms de classe et de méthode explicites ou des expressions régulières qui définissent des modèles de noms de classe et de méthode correspondants. Certains frameworks de POA vous permettent de créer des raccourcis dynamiques qui déterminent si les conseils doivent être appliqués en fonction de décisions prises lors de l'exécution, telles que la valeur des paramètres de la méthode.
L'image suivante peut vous aider à comprendre Advice, PointCut, Joinpoints.
Source :
Explication à l'aide de l'analogie du restaurant : Source par @Victor
Lorsque vous allez au restaurant, vous regardez un menu et vous voyez plusieurs options parmi lesquelles vous pouvez choisir. Vous pouvez commander un ou plusieurs des articles figurant sur le menu. Mais tant que vous ne les commandez pas réellement, ce ne sont que des "occasions de dîner". Une fois que vous passez la commande et que le serveur l'apporte à votre table, c'est un repas.
Les points de jonction sont des options du menu et les points d'accès sont des éléments que vous sélectionnez.
Un Joinpoint est une opportunité dans le code qui vous permet d'appliquer un aspect... juste une opportunité. Lorsque vous saisissez cette opportunité, sélectionnez un ou plusieurs Joinpoints et leur appliquez un aspect, vous obtenez un Pointcut.
Source : Wiki :
A Joinpoint est un point dans le flux de contrôle d'un programme où le flux de contrôle peut arriver par deux voies différentes (IMO : c'est pourquoi l'appel joint).
Conseils décrit une classe de fonctions qui modifient d'autres fonctions
A Pointcut est une correspondance P attern of Joinpoint, c'est-à-dire l'ensemble des points de jonction.