2013-12-17 6 views
5

In der ORMLite-Dokumentation it is recommended zum Erstellen der OrmLiteSqliteOpenHelper für jede Aktivität. Als das Erhalten des Helfers nur ein Context Objekt benötigt, warum nicht den Datenbankhelfer einmal für das gesamte Application Objekt überhaupt schaffen? Dies würde die Möglichkeit eröffnen, dass der Datenbank-Helfer mit Hilfe von Dolch (oder anderen Injection-Frameworks) in Klassen injiziert wird, die ihn benötigen.Warum binden Sie den OrmLiteSqliteOpenHelper nicht an die Anwendung, sondern an die Anwendung?

Gibt es einen Grund, keinen einzigen anwendungsweiten Datenbankhelfer zu erstellen? Ist es vorzuziehen, dass jede einzelne Aktivität einen eigenen Datenbankhelfer hat? Ich kann mir vorstellen, dass dies die Cachegröße des Helfers klein hält, da der Cache nur Objekte enthält, die mit seiner Aktivität in Beziehung stehen.

Antwort

4

In der ORMLite-Dokumentation wird empfohlen, den OrmLiteSqliteOpenHelper für jede Aktivität zu erstellen.

Dies sollte nicht sein was bedeutet, dass Sie für jede Aktivität eine getrennte Instanz der Helfer benötigen. Sie können/sollten den Helfer in Ihrer Anwendung teilen.

aus der Dokumentation zu zitieren:

Wir die OpenHelperManager empfehlen die Verwendung des Helfers zu überwachen - es es auf den ersten Zugang schaffen wird, ein Teil des Codes jedes Mal verfolgen sie verwendet, ist, und dann schließt es das letzte Mal, wenn der Helfer freigegeben wird.

Die OpenHelperManager erstellt und verwaltet die Helfer Singletons.

Wenn Sie mich auf den Punkt in der Dokumentation verweisen, der angibt, dass Sie eine andere pro Aktivität benötigen, und ich zwicke sie?

+1

Es gibt keine solche explizite Anweisung, dass man für jede Aktivität eigene Instanzen namens "OrmLiteSqliteOpenHelper" haben sollte. Ich habe nur Beispiele gefunden, die diese Strategie unterstützen. Ich hätte in meiner Frage nicht behaupten sollen, dass die Dokumentation dies ausdrücklich empfiehlt. –

+0

Np @LarsBlumberg. Lassen Sie mich wissen, ob die Dokumente (oder die Beispiele) geändert werden müssen, um dies besser widerzuspiegeln. – Gray

Verwandte Themen