题
我正在开发一个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
代码。
不隶属于 StackOverflow