sql >> Base de Datos >  >> RDS >> SQLite

¿Cómo puedo dividir un SQLiteOpenHelper único y largo en varias clases, una para cada tabla?

¿Crees que podrías dar algunos consejos sobre cómo hacerlo?

Esto no tiene mucho que ver con Android, e incluso no tiene mucho que ver con Java. La descomposición de estructuras de programación largas (por ejemplo, clases en Java) en estructuras más pequeñas tiene técnicas estándar, llamadas patrones de diseño, con implementaciones específicas del lenguaje.

Por ejemplo, podría optar por el patrón compuesto:

  • Defina una interfaz. Lo llamaré TableHelper aquí -- que tiene onCreate() y onUpdate() métodos que coinciden con los de SQLiteOpenHelper

  • Defina N clases, una por tabla, que implementen el TableHelper interfaz y proporcione la lógica de creación y actualización para esa tabla (junto con cualquier otra lógica comercial que desee tener en esas clases)

  • Tenga su SQLiteOpenHelper definir un TableHelper[] que contiene instancias de su TableHelper clases, y hacer que delegue onCreate() y onUpgrade() a esos TableHelper instancias iterando sobre la matriz