我目前正在开发Android应用程序,我选择了MVP-Arhitecture。 我的问题是现在,我需要从模型中的数据库中读取和写入一些东西,但是因此你需要一个对Context的引用,它在View中。我想知道,如何在不破坏MVP架构的情况下从视图到模型获取Context(如果可能的话)。
THX !!!
答案 0 :(得分:8)
必须创建模型和演示者,即:
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;
}
}