Design Patterns for Data Access Layer

Ich habe eine Anwendung, die eine Datenbank (MongoDB) zum speichern von Informationen. In der Vergangenheit ich habe eine Klasse voll von statischen Methoden zum speichern und abrufen von Daten, aber ich habe da erkannt, dass dies nicht sehr Objekt-orientiert-ish oder die Zukunft gerüstet ist.

Obwohl es sehr unwahrscheinlich ist werde ich die Datenbank ändern, ich würde lieber etwas, das nicht Binde mich zu stark an "Mongo". Ich möchte auch in der Lage sein, um cache-Ergebnisse mit der option zum aktualisieren der Cache-Objekt aus der Datenbank, dies ist aber nicht zwingend und kann getan werden, in einem anderen Ort.

Ich habe mir von data access objects aber Sie scheinen nicht sehr gut definiert und ich finde keine guten Beispiele für die Implementierung (In Java oder einer ähnlichen Sprache). Ich habe auch viele man aus Fällen wie die Suche nach Benutzernamen für tab completion, die scheinen nicht gut geeignet und würde das DAO groß und aufgebläht.

Gibt es irgendwelche design patterns erleichtern würde, dass das abrufen und speichern von Objekten, ohne dass auch eine bestimmte Datenbank? Gute Beispiele für die Umsetzung wäre hilfreich (vorzugsweise in Java).

InformationsquelleAutor user2248702 | 2014-12-31
Schreibe einen Kommentar