Android - использование шаблона Dao с contentProvider

Правильно использовать ContentProvider с шаблоном dao.? или это приведет к какой-либо проблеме производительности?

Я попытаюсь объяснить. У меня есть контент-провайдер. активность, dao и bean..

это код:

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

}
....}

Как вы думаете?

приветствует

Ответы

Ответ 1

DAO предназначен для предоставления абстрактного интерфейса к базе данных. ContentProvider уже делает это.

Да, вы можете сделать второй уровень абстракции для предоставления DAO API, но... Вы программируете на мобильном устройстве. Использование API ContentProvider напрямую будет более эффективным. Это много примеров. Например, посмотрите, насколько тесно связаны курсоры и ListViews. Посмотрите на классы CursorAdapter, и вы увидите, как он предназначен для непосредственной сопоставления с курсором базы данных на список на экране. Посмотрите на ContentObserver и посмотрите, как это было сделано для push-уведомления курсора для обновления в соответствии с измененной базой данных и, в свою очередь, обновите один элемент списка в ListView, чтобы отразить эту базу данных по мере ее изменения в реальном времени...

Вы собираетесь потратить огромные усилия, изобретая колесо, пытаясь получить весь существующий код для переноса модели DAO. Я не знаю вашего приложения, но я не уверен, что вижу преимущество, которое вы получаете от него.