Ich bin ratlos, warum die Adoption von AO so langsam war. Es gibt viele reichhaltige Implementierungen für die vorherrschenden Sprachen. Meine Vermutung ist, dass, wie OO heute, es ein Paradigmenwechsel ist, dass die Menschen die Orte nicht erkennen, wo sie ihnen helfen könnten.
Abgesehen von der nicht-invasiven Protokollierung gibt es einige Möglichkeiten, wie Sie AO verwenden oder planen, die Komplexität zu reduzieren, die Wartung zu verbessern, das System zu verbessern " tilities "?
Ich verwende derzeit AOP über EntLib / Unity in der Produktion für:
Werfen Sie einen Blick auf Ссылка für eine Implementierung des Arbeitseinheitsmuster mit AOP
%Vor%Transaktionsverwaltung Ich weiß, es ist eine kanonische Verwendung von AOP, aber es scheint wirklich, wenn es dafür verwendet wird.
Und obwohl ich keine Möglichkeit hatte, es in einer realen Situation zu verwenden, sehe ich "um Ratschlag" als UNGLAUBLICH leistungsstark, insbesondere für den Wert, den es hinzufügt, um die Komplexität des Codes zu vereinfachen, indem der Notwendigkeit für viele Prüfungen für seltene Bedingungen.
Ich stimme für Spring AOP zu.
AOSD (wir sprechen nicht mehr über AOP, ich weiß nicht genau warum) ist wirklich nützlich für Middleware / Service-orientierte Architektur, wo Sie bereits eine gewisse Modularität haben.
Ich habe es in diesem Zusammenhang für Telefoniedienste mit einigen wirklich eingeschränkten Abrechnungsdienst verwendet.
Ich habe es auch benutzt, um eine Art modularen Interpreter / Compiler zu erstellen, um eine Analyse um irgendeinen Code durchzuführen.
Ein Problem sind meines Erachtens die Pointcut-Sprachen, die manchmal schwierig zu beschreiben sind, wo genau Sie Ihren Rat anwenden wollen. Ein anderes Problem ist die Zusammensetzung, ich weiß nicht, ob es gelöst wurde, aber es könnte schwierig sein zu verstehen, wenn Sie Ihre Ratschläge bestellen ....
AOP ist üblich, außer dass die Leute es selten AOP nennen. Sehen Sie sich alle Stellen in der .NET-Programmierung an, in denen Attribute verwendet werden. Attribute sind im Wesentlichen übergreifende Verhaltensweisen, die für viele Klassen / Methoden / Parameter gelten können.
Vor kurzem hat die ASP.NET MVC-Plattform eine starke Verwendung von Attributen für eine Vielzahl von übergreifenden Komponenten wie Sicherheit, Datenbindung und Ausnahmebehandlung übernommen.
Nach meiner Erfahrung scheint Spring AOP ziemlich verbreitet zu sein.
Ich denke, die Schwierigkeit besteht darin, dass die Leute einfach nicht daran gewöhnt sind, in Aspekten zu denken, und das Einarbeiten von Code selbst zur Kompilierzeit kann etwas beängstigend sein, da es schwieriger ist zu sehen, was tatsächlich jede Methode beeinflusst Beispiel, esp, wenn Sie eine Mischung aus Weberei zur Kompilierzeit und Laufzeit verwenden.
Ich habe es in Situationen verwendet, in denen ich einen Controller habe, und ich füge hinzu, ob es zum Beispiel ein Servlet oder ein Webservice ist. Ich habe es auch verwendet, um die Datenbank zu abstrahieren, damit die Datenbankverbindungen und datenbankoptimierten Abfragen in die Anwendung einfließen können.
Tags und Links aop