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