SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Wie kann ich einen langen, einzelnen SQLiteOpenHelper in mehrere Klassen aufteilen, eine für jede Tabelle

Glaubst du, du könntest ein paar Tipps geben, wie man das macht?

Das hat nicht viel mit Android zu tun, und nicht einmal allzu viel mit Java. Zum Zerlegen langer Programmierstrukturen (z. B. Klassen in Java) in kleinere Strukturen gibt es Standardtechniken, sogenannte Entwurfsmuster, mit sprachspezifischen Implementierungen.

Zum Beispiel könnten Sie mit dem zusammengesetzten Muster gehen:

  • Definieren Sie eine Schnittstelle – ich nenne sie TableHelper hier -- das hat onCreate() und onUpdate() Methoden, die denen auf SQLiteOpenHelper entsprechen

  • Definieren Sie N Klassen, eine pro Tabelle, die den TableHelper implementieren Schnittstelle und stellen Sie die Erstellungs- und Aktualisierungslogik für diese Tabelle bereit (zusammen mit jeder anderen Geschäftslogik, die Sie für diese Klassen haben möchten)

  • Haben Sie Ihren SQLiteOpenHelper Definiere einen TableHelper[] enthält Instanzen Ihres TableHelper Klassen, und lassen Sie onCreate() delegieren und onUpgrade() zu diesen TableHelper Instanzen durch Iterieren über das Array