2010-05-21 3 views
5

Wenn Sie SQLiteOpenHelper erweitern, müssen Sie für den Konstruktor einen Kontext verwenden. Ich frage mich, ob es eine Möglichkeit gibt, dies auszulassen und in der Lage zu sein, mit Datenbanktabellen ohne Kontext zu arbeiten.Wie verwende ich SQLiteOpenHelper ohne oder mit weniger restriktiven Kontext?

Oder zumindest am wenigsten restriktiv sein, ich meine eine Art von Projekt/Klassenstruktur, die Geschichte machen die verschiedenen Kontext Passings, die ich jetzt tun muss.

Wie es ist meine Anwendung hat mehrere Ebenen von Klassen, miteinander verkettet, und es gibt einige, die mit der Datenbank verbindet, aber keinen Einfluss auf die Schnittstelle haben, so dass sie nicht wirklich den Kontext benötigen.

Erstellen Sie Ihre Klassen auf die Art und Weise, wie Sie jedes Mal einen Kontext an sie weitergeben?
Wenn nicht, wie Sie einen Kontext in einer kurzen Klasse wiederverwenden?

Antwort

3

Ich frage mich, ob es eine Möglichkeit, läßt dies aus, und in der Lage mit Datenbanktabellen ohne Kontext zu arbeiten.

Rufen Sie openDatabase() auf SQLiteDatabase.

Da es meine Anwendung ist mehrere Niveau der Klassen hat, in jedem andere gekettet

Bitte denken Sie daran, dass dies ein Handy Sie entwickeln. Zu viele Abstraktionsebenen beeinträchtigen die Leistung.

erstellen Sie Ihre Klassen in der Weise, dass Sie jedes Mal, wenn ein Kontext ihnen passieren?

Manchmal ja, manchmal nicht.

Wenn nicht, wie Sie tun, wie Sie einen Kontext in einer kurzen Klasse wiederverwenden?

Verwenden Sie innere Klassen.

+1

Das Problem mit inneren Klassen ist, dass sie einzelne Dateien in die Luft sprengen, was genau das ist, was Sie bei der objektorientierten Programmierung haben wollen. – Julian

+0

Ich habe das gleiche Problem wie der Schreiber, habe ich meine App in 3 Schichten getrennt: UI, Logik, DB. Ich habe mich gefragt, was ist die beste Wette? die UI-Datei mit dem gesamten Layer-Code in die Luft sprengen? – user2558461

Verwandte Themen