Question

Je développe une application Android.

Je l'interface suivante:

public interface IDBAdapter {

    public enum Table {
        ...
    }
    public int insertItem(Table table, Object item);
    public boolean removeItem(Table table, long rowIndex);
    public Cursor getAllItemsCursor(Table table);
    public Cursor setCursorToItem(Table table, long rowIndex);
    public void getItem(Table table, long rowIndex);
    public boolean updateItem(Table table, long rowIndex, Object item);
}

Pour chaque table définie sur enum Table, ce sera un objet qui représente cette table.

Mon problème est sur le paramètre Object item. Je vais devoir unbox chaque élément chaque fois que j'appelle une de ces méthodes et je ne sais pas si ce sera très lent pour Android.

Savez-vous une meilleure solution? Je ne veux pas créer un dbAdapter pour chaque table parce que je dois partager objet SQLiteDatabase entre eux.

Mise à jour:

Voici un exemple d'objet que je dois passer à ces méthodes:

public class GameDescriptionData {
    public int gameId;
    public char[] language = new char[5];
    public String name;
    public String description;

    public GameDescriptionData() {
    }
}

Merci.

Était-ce utile?

La solution

Vous avez pas dit quel genre de valeurs que vous mettez dans les tables. À moins que vous insérez des valeurs primitives, il n'y aura pas de boxe impliqué. Par exemple, si item est une référence String, qui n'a pas besoin de boxe, car il est déjà une référence.

Je vous suggère d'essayer votre conception idéale avant de le changer pour des raisons de problèmes de performance. Il est vrai que je ne suis pas tout à fait convaincu que c'est un grand dessein pour commencer, mais il est difficile de dire sans en savoir plus au sujet de votre application.

Autres conseils

Je suggère le modèle de stratégie pour impl les soins distincts pour chaque élément attendu.
Définir DBAdapterStrategyFactory qui stockera toutes les stratégies ensemble en fonction de leur type de classe. De cette façon, lors de l'appel des opérations sur Object item vous pouvez tirer cette stratégie de l'usine et partager la plupart du code IDBAdapter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top