我正在开发一个Android应用程序。

我有以下接口:

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

对于定义的每个表 enum Table, ,它将是代表该表的对象。

我的问题是关于参数 Object item. 。每次调用此方法之一时,我都必须拆开每个项目,并且我不知道Android是否会很慢。

您知道更好的解决方案吗?我不想为每个表创建一个dbadapter,因为我应该在彼此之间共享sqlitedatabase对象。

更新:

这是我需要传递给这些方法的对象的示例:

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

    public GameDescriptionData() {
    }
}

谢谢。

有帮助吗?

解决方案

您还没有说过要放入桌子的价值。除非您插入原始值,否则不会涉及任何拳击。例如,如果 item 是一个 String 参考,这不需要拳击,因为它已经是参考。

我建议您在为了表演问题而更改之前先尝试理想的设计。诚然,我并不完全相信这是一个很棒的设计,但是很难说而不了解您的应用程序。

其他提示

我建议 策略模式 为每个预期物品都有明显的护理。
定义 DBAdapterStrategyFactory 这将根据其班级类型将所有策略存储在一起。这样,在调用操作时 Object item 您可以从工厂拉出该策略,并分享大部分 IDBAdapter 代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top