Pregunta

Estoy desarrollando una aplicación para Android.

Tengo el siguiente interfaz:

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);
}

Para cada tabla definida en enum Table, será un objeto que representa esa tabla.

Mi problema es sobre los parámetros Object item. Voy a tener que desempacar cada elemento cada vez que llamo a uno de estos métodos y no sé si esto va a ser muy lento para Android.

¿Usted sabe una solución mejor? No quiero crear un dbAdapter para cada tabla, ya que debería compartir objetos SQLiteDatabase entre unos y otros.

ACTUALIZACIÓN:

Aquí es un ejemplo de objeto que necesito para pasar a aquellos métodos:

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

    public GameDescriptionData() {
    }
}

Gracias.

¿Fue útil?

Solución

Usted no ha dicho qué tipo de valores que se está poniendo en las mesas. A menos que esté insertando valores primitivos, no habrá ningún boxeo involucrados. Por ejemplo, si item es una referencia String, que no necesita el boxeo porque es una referencia ya.

Le sugiero que pruebe su diseño ideal antes de cambiarlo por el bien de los problemas de rendimiento. Es cierto que no me convence del todo esto es un gran diseño para empezar, pero es difícil de decir sin saber más acerca de su aplicación.

Otros consejos

Yo sugeriría que el estrategia patrón a impl el cuidado distinto para cada elemento esperado.
Definir DBAdapterStrategyFactory que almacenará todas las estrategias en conjunto en función de su tipo de clase. De esta manera, cuando se llama a las operaciones en Object item que puede tirar de que la estrategia de la fábrica y compartir la mayor parte del código IDBAdapter.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top