MVP-архитектура Android Как выполнять вызовы базы данных в модели с помощью SQLiteHelper

В настоящее время я работаю над приложением для Android и выбрал MVP-архитектуру. Моя проблема сейчас заключается в том, что мне нужно что-то прочитать и написать из базы данных в модели, но для этого вам нужна ссылка на контекст, и это в представлении. Я хочу знать, как получить контекст из представления в модель, не нарушая MVP-архитектуру (если это возможно).

Спасибо!!!

1 ответ

Решение

Что-то должно создать модель и презентатор, т.е.

 new MyModel();
 new Presenter();

Обычно это активность

 @Override
 public void onCreate(Bundle savedState) {
      Model model = new MyModel();
      Presenter presenter = new Presenter(model, this); // this being the View
 }

Если вы используете базу данных внутри вашей модели, вы хотите использовать зависимость, чтобы сделать это, возможно, называется DatabaseReader

 @Override
 public void onCreate(Bundle savedState) {
      DatabaseReader db = new DatabaseReader(this); // this being context
      Model model = new MyModel(db);
      Presenter presenter = new Presenter(model, this); // this being the View
 }

Теперь у вас есть класс под названием DatabaseReader это имеет Context передается ему через конструктор, так что вы можете делать "вещи из базы данных", и сам этот класс используется моделью.

 public class DatabaseReader {

     private final Context context;


     public DatabaseReader(Context context) {
         this.context = context;
     }
 }

а также

 public class MyModel implements Model {

     private final DatabaseReader db;

     public MyModel(DatabaseReader db) {
         this.db = db;
     }


 }
Другие вопросы по тегам