Kann jemand AOP-Konzepte für Dummies erklären: Verbinden, Schneiden, Weben usw.
Beispiel: Aspekt: Eine Modularisierung eines Unternehmens, die mehrere Klassen umfasst. Was bedeutet das?
quelle
Kann jemand AOP-Konzepte für Dummies erklären: Verbinden, Schneiden, Weben usw.
Beispiel: Aspekt: Eine Modularisierung eines Unternehmens, die mehrere Klassen umfasst. Was bedeutet das?
Stellen Sie sich ein Problem als eine Funktionsgruppe vor, z. B. Protokollierung, Prüfung, Sicherheit
Diese Funktionalitäten sind in den meisten Codes jemals vorhanden, aber in unseren Tier-> Hundeklassen leben sie nicht wirklich - es handelt sich um Funktionalitäten, die in vielen Klassen leben sollten - es handelt sich um Querschnittsthemen .
Ein Joinpoint ist eine Stelle im Code, an der der Aspektcode tatsächlich ausgeführt wird.
Ein Pointcut gibt an, welcher Code am Jointpoint ausgeführt wird.
Weben - wenn der Compiler / das System Ihren normalen Code verwendet und den gesamten AOP-Code einschließt, um den richtigen Code usw. auszulösen - kann dies als zusätzlichen Vorkompilierungsschritt angesehen werden.
Ein einfaches verständliches Beispiel ist:
Bitte beachten Sie, dass die Terminologie zwischen verschiedenen Implementierungen und AOP-Frameworks geringfügig variiert.
In der Reihenfolge lesen
Jede Definition baut auf den vorherigen auf.
Querschnittsthema
Etwas, das Sie überall in Ihrer Anwendung stört (betrifft) (übergreifend). zB Protokollierung oder Sicherheit
Aspekt
Ein Codeabschnitt, der automatisch vor , nach oder um Ihren vorhandenen Code ( herum ) hinzugefügt wird
PointCut & JoinPoint
Pointcut
Eine Stelle in der Codeausführung, an der ein Teil des Aspekts ausgeführt wird.
JoinPoint
Der Punkt, an dem Ihr Aspekt den Punktschnitt "verbindet". Bei einem JoinPoint "vor" haben Sie Zugriff auf Parameter, bei einem JoinPoint "nach" haben Sie Zugriff auf den Rückgabewert. Wenn eine Ausnahme ausgelöst wird, benötigen Sie möglicherweise ein "try-catch-finally", um sie zu verarbeiten oder erneut auszulösen.
Weberei
Der Prozess des Hinzufügens von Aspekten um einen Pointcut
quelle