Ich wollte es für mich klar machen.Was ist die große Idee hinter der AOP Implementierung
Ich las über AOP-Konzept und ich verstand, dass es eine gute Möglichkeit ist, Cross-Cut-Dienste zu teilen. (Logging, Sicherheit, Transaktion ...)
Aber ich möchte etwas über diese Idee und ihre Implementierung sagen/fragen.
Ich habe gelesen, es gibt einige Möglichkeiten wie AspectJ, JBOSS AOP, um AOP zu meiner Geschäftslogik Assimilation.
aber war es hier schon lange her?
lassen Sie uns zum Beispiel sagen, dass ich möchte, dass meine Komponenten eine Protokollierung oder Sicherheitsimplementierung amongs teilen (Java Beans, EJB, was auch immer ..)
Warum konnte ich nicht ein Singleton Bohne sicherstellen, dass es nur machen hat man Sobald eine Komponente ihren Protokollierungs-/Sicherheitsdienst benötigt, wird sie nachschlagen und ihren Dienst nutzen.
Warum sollte ich all diese "großen" Implementierungen wie aspectj oder jboss AOP verstehen müssen? Was vermisse ich hier?
Was ist, wenn ich Elternklasse erstellen und erweitern habe meine Klassen daraus zu erweitern. Ich könnte all meine "perment" -Logik in diese Elternklasse einfügen. wenn eine Klasse es erweitern wird, wird es in der Lage sein, alle Loggig/secutiry ... Methoden zu genießen, die ich vorher erklärt hätte. Ich kann auch zusätzliche Methoden erstellen "create"/"destroy" für perment loggig und so .. – rayman
@rayman: aber Sie müssen ** diese Methoden immer noch aufrufen ** (siehe großes Codebeispiel * JB Nizet *). AOP wird es für Sie tun, wenn Sie dazu aufgefordert werden, auch für den Code, den Sie noch nicht geschrieben haben! Dies bedeutet auch, dass neue Programmierer die Protokollierungs-/Sicherheitsfunktionen genießen werden, ohne sie zu kennen.Ganz zu schweigen davon, dass du deinen Code nicht mit Basisklassen/Hilfsmethoden überlagerst –
Mybe könntest du meinen letzten Kommentar zu JB ansehen. – rayman