【发布时间】:2016-08-22 07:02:49
【问题描述】:
我目前正在开发一个 Android 应用程序,我选择了 MVP-Arhitecture。 我现在的问题是,我需要从模型中的数据库中读取和写入一些东西,但是因此您需要对上下文的引用,并且它在视图中。我想知道,如何在不破坏 MVP 架构的情况下从视图获取上下文到模型(如果可能的话)。
谢谢!!!
【问题讨论】:
标签: android architecture mvp
我目前正在开发一个 Android 应用程序,我选择了 MVP-Arhitecture。 我现在的问题是,我需要从模型中的数据库中读取和写入一些东西,但是因此您需要对上下文的引用,并且它在视图中。我想知道,如何在不破坏 MVP 架构的情况下从视图获取上下文到模型(如果可能的话)。
谢谢!!!
【问题讨论】:
标签: android architecture mvp
有些东西必须创建模型和演示者,即:
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;
}
}
【讨论】: