2009-08-12 7 views
2

Ich benutze AOP für "klassische" Dinge wie Logging und Sicherheit für eine Weile und fange an, es weiter zu gehen.AOP und benutzerspezifischer Datenspeicher

Ein Problem, auf das ich häufig bei Desktop-Anwendungen stoße, ist die Notwendigkeit, benutzerspezifische Daten lokal zu speichern. Zu diesem Zweck habe ich eine Komponente entwickelt, die gut für mich funktioniert und Daten als XML in einem anwendungsspezifischen Unterordner des Ordners LocalApplicationData speichert (unter Windows, aber das Konzept gilt für jedes Betriebssystem).

Jede Anwendung muss ihre eigenen Daten speichern, aber ich habe auch eine Code-Bibliothek gebaut, wo mehrere Komponenten auch Daten speichern müssen.

Ein Ansatz, den ich nehmen könnte, ist, jede meiner Komponenten, die den lokalen Speicherdienst benötigen, fest mit meiner Implementierung von lokalem Speicher zu koppeln. Eine Änderung der Schnittstelle dieser lokalen Speichermaschine wäre jedoch teuer.

Ist diese Problemdomäne gut für AOP geeignet? Gibt es bessere Ansätze? Gibt es Fallen, die ich nicht sehe?

+0

Ich weiß, dass Sie Sprach-Agnostiker setzen, aber die Sprache wird von Bedeutung sein, wie Java zum Beispiel AOP viel besser als C# unterstützt. Aber wenn du Spring benutzt, ist es vielleicht nicht so wichtig. In Java wäre das viel einfacher. –

Antwort

1

Ich sehe wirklich nicht die Querschneiderei, die dies zu einem Problem für AOP machen würde zu lösen.

Definieren Sie einfach eine kleine API zum Speichern der Informationen. Bringen Sie Ihre Bibliothek dazu, diese Schnittstelle zu implementieren. Setzen Sie alles zusammen mit Spring, einem beliebigen DI Tool oder manuellem Klebecode und Sie sind fertig.