Quelqu'un peut-il expliquer les concepts AOP pour les nuls: point de jonction, coupe de point, tissage, etc.
Par exemple: Aspect: une modularisation d'une préoccupation qui recoupe plusieurs classes. Qu'est-ce que ça veut dire?
la source
Quelqu'un peut-il expliquer les concepts AOP pour les nuls: point de jonction, coupe de point, tissage, etc.
Par exemple: Aspect: une modularisation d'une préoccupation qui recoupe plusieurs classes. Qu'est-ce que ça veut dire?
Considérez une préoccupation comme un groupe de fonctionnalités, par exemple la journalisation, l'audit, la sécurité
Ces fonctionnalités sont toujours présentes dans la plupart des codes, mais elles ne vivent pas vraiment dans nos classes d'animaux-> chiens - ce sont des fonctionnalités qui devraient vivre dans de nombreuses classes - elles sont des préoccupations transversales .
Un Joinpoint est un endroit dans le code où le code d'aspect est réellement exécuté.
Un pointcut est comment dire quel code s'exécute au point commun.
Le tissage - c'est quand le compilateur / système prend votre code normal et inclut tout le code AOP afin qu'il déclenche le bon code, etc. - peut penser à cela comme une étape de précompilation supplémentaire.
Un exemple simple et compréhensible est:
Veuillez noter que la terminologie diffère légèrement entre les différentes implémentations et les cadres AOP.
Lire en séquence
Chaque définition s'appuie sur les précédentes.
Préoccupation transversale
Quelque chose qui vous dérange (inquiétude) partout (transversal) dans votre application. par exemple, journalisation ou sécurité
Aspect
Un morceau de code qui est automatiquement ajouté avant , après ou les deux ( autour ) de votre code existant
PointCut & JoinPoint
Pointcut
Une place dans l'exécution de code où une partie de l'aspect s'exécute.
JoinPoint
Le point où votre aspect "rejoint" le point de coupe. A "avant" joinPoint, vous aurez accès aux paramètres, à "après" joinPoint, vous aurez accès à la valeur de retour. Si une exception est levée, vous pouvez avoir besoin d'un "try-catch-finally" pour la gérer ou la relancer.
Tissage
Le processus d'ajout d'aspects autour d'un pointcut
la source