2010-10-16 6 views
1

Je développe une application Android avec une base de données. Cette base de données aura plus de trois tables.DBAdapter conception question

Maintenant, je travaille sur une classe appelée DBAdapter pour accéder à la base de données SQLite.

DBAdpater aura cinq méthodes pour chaque table sur la base de données (insertEntry, removeEntry, getAllEntries, getEntry et updateEntry). Donc, si j'ai cinq tables, DBApadter aura plus de vingt-cinq méthodes. Je pense est tellement énorme.

Comment les classes DBAdapter doivent-elles être?

Merci.

Répondre

1

Vous devriez pouvoir le conserver à 5 méthodes publiques et à une seule classe DBAdapter.

Créez un type ENUM qui définit la table que vous souhaitez utiliser et ajoutez un argument supplémentaire contenant un objet (par exemple, un tableau hachage) contenant les paires nom/valeur nécessaires à votre requête. Cela permet de garder votre interface publique propre.

-à-dire:

DBAdaptor.insertEntry (TABLES.table1, valuesHashTable)

au lieu de:

Table1DBAdaptor.insertEntry (arg1, arg2, arg3, arg4)

A l'intérieur du dbAdapter Vous pouvez créer une classe interne qui gère les détails de votre implémentation pour chaque type de requête. Pour les méthodes get, je ne suis pas sûr du type de retour, mais vous pouvez créer une classe de base et la sous-typer comme nécessaire pour les types de retour supplémentaires.

+0

Bonne réponse! C'est exactement ce que je pensais faire! Merci – VansFannel