使用MVP在存储库中为多个视图保留数据

问题描述 投票:1回答:1

我有一个View1 Presenter1 Repository。在某些时刻,我创造了View2 Presenter2。创建View1时已加载所有必要的数据。我只需要在Presenter2中使用它。我怎样才能做到这一点?我对存储库模式方法更感兴趣。我应该这样做吗?:

class Repository {
    private val list;

    getData() {
        ...
        list = result;
    }
}

如果是这样,我如何保持qazxsw poi持久而不会丢失其信息通过qazxsw poi和list一生?

我通常像View1一样通过View2

Repository

android mvp
1个回答
0
投票

在这种情况下,您最好的方法是使用依赖注入(dagger2)在每个演示者中注入相同的存储库类实例。为此,您可以使您的存储库类成为单例:

app module.Java

Presenter(new Repository)

通过使用Singleton范围,您的存储库对象在整个应用程序中都是唯一的。如果您不知道如何使用匕首,您可以自己创建一个单例类,但我强烈建议您查找如何使用匕首,因为这将使您的应用程序更加分离并且易于测试。

然后在您的演示者中,您所要做的就是注入存储库的实例。

my presenter.Java

enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.