Wenn man bedenkt, dass es sich um eine der-
Was ich denke, würde mir erlauben, ein Programm mit minimalen Gedanken darüber zu schreiben, was zwischengespeichert werden muss (z. B. eine Art Boiler-Plate, Low / No-Cost-Muster, das sich zu nichts auflöst, was ich will Caching) und wenn dann die Dinge weiter sind und ich weiß, wo ich Caching brauche, kann ich es hinzufügen, ohne invasive Codeänderungen vorzunehmen.
Als eine Idee zu der Art von Lösung, nach der ich suche; Ich arbeite mit der D Programmiersprache (aber halbwegs vernünftig C ++ wäre in Ordnung) und ich mag Vorlage.
Das nächste, was mir in den Sinn kommt, ist Memoisierung für reine Funktionen. Vielleicht auch interessant für Sie könnte dieses Buch Pattern Oriented Software Architektur Patterns Management sein, das Caching-Muster enthält.
Es gibt eine C ++ 0x-Lösung für die generische automatische Memoisierung (siehe Antwort hier: Was sind angemessene Möglichkeiten, rekursive Probleme zu lösen? )
Es könnte Sie interessieren, wie Drizzle dies mit verschiedenen Speicher- und Caching-Backends macht. Kurz gesagt, bietet es eine Schnittstelle, die von einer übergeordneten Anwendung verwendet werden kann, um mit MySQL, Memcached usw. zu interagieren.
Ich bin mir nicht sicher, in welchem Umfang die Lösung "verallgemeinert" und "steckbar" sein muss, aber wenn Sie es sich leisten können, die Verwendung Ihrer Caches zu refactoring (Funktionsaufrufe durch direkte Verwendung einiger Variablen zu ersetzen), dann überlegen Sie Folgendes :
%Vor%Wenn Sie die verzögerte Initialisierung entfernen möchten, ändern Sie sie, sodass der Cache im Konstruktor und der Methode reset () erstellt wird.
Tags und Links c++ design-patterns caching d