Frage

Ich bin eine Android-Anwendung zu entwickeln.

Ich habe die folgende Schnittstelle:

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

Für jede Tabelle auf enum Table definiert ist, wird es ein Ziel sein, das diese Tabelle darstellt.

Mein Problem ist, über Parameter Object item. Ich werde jedes Element unbox haben jedes Mal, wenn ich eine dieser Methoden aufrufen, und ich weiß nicht, ob dies für Android wird sehr langsam sein.

Sie wissen, eine bessere Lösung? Ich will nicht eine DbAdapter für jede Tabelle erstellen, weil ich SQLiteDatabase Objekt zwischen miteinander teilen sollte.

UPDATE:

Hier ist ein Beispiel für Objekt, dass ich auf diese Methoden übergeben müssen:

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

    public GameDescriptionData() {
    }
}

Danke.

War es hilfreich?

Lösung

Sie haben nicht gesagt, was für Werte, die Sie in den Tabellen setzen sind. Es sei denn, Sie primitive Werte sind das Einfügen, wird es keine Boxen beteiligt sein. Zum Beispiel, wenn item ist eine String Referenz, die nicht Boxen braucht, weil es bereits eine Referenz ist.

Ich schlage vor, Sie versuchen, Ihr ideales Design, bevor es aus Gründen der Leistungsprobleme zu verändern. Zwar bin ich nicht ganz überzeugt, dass dies ein großer Entwurf ist mit zu beginnen, aber es ist schwer zu sagen, ohne mehr über Ihre Anwendung zu kennen.

Andere Tipps

Ich würde vorschlagen, die Strategie Muster die deutliche Sorgfalt für jedes erwartete Element impl.
definieren DBAdapterStrategyFactory, die alle Strategien zusammen auf der Grundlage ihres Klassentyp gespeichert werden. Auf diese Weise, wenn Operationen auf Object item Aufruf Sie diese Strategie aus der Fabrik ziehen können und die meisten des IDBAdapter Code teilen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top