Android - 使用Dao Pattern和contentProvider

ant*_*lla 14 android dao android-contentprovider

使用带有dao Pattern的ContentProvider是正确的.?或者它会带来任何性能问题?

我会尽力解释.我有一个contentProvider.一个活动,一个道和一个豆..

这是代码:

class Bean(){

 String name;

}

class Dao{

 Activity activity;

 public Dao(Activity activity){

 this.activity = activity;

public List<Bean> getAllBean() {

    Cursor c = activity.managedQuery(Bean.CONTENT_URI, PROJECTION,
                null, null, Bean.DEFAULT_SORT_ORDER);
    return BeanMapper.GetAllFromCursor(c);
    }
}

}

Class Activity{
.....


 onCreate(....){

  Dao dao = new Dao(this);
  List<Bean> aList = dao.getAllBean();

}
....}
Run Code Online (Sandbox Code Playgroud)

你怎么看 ?

问候

jcw*_*ger 35

DAO旨在为数据库提供抽象接口.ContentProvider已经这样做了.

是的,您可以制作第二个抽象层来提供DAO API,但是......您正在移动设备上进行编程.直接使用ContentProvider API会更有效率.有很多例子.例如,查看Cursors和ListViews的耦合程度 - 查看CursorAdapter类,您将看到它是如何设计为直接从数据库光标映射到屏幕上的列表.查看ContentObserver,看看它是如何设计推送 - 通知游标更新以匹配更改的数据库,反过来,更新ListView中的单个列表元素以反映该数据库实时更改...

你将花费巨大的努力重新发明轮子试图让所有现有的代码通过DAO模型.我不知道你的应用程序,但我不确定我是否看到了你从中获得的优势.