在MVVM中加载并显示本地JSON文件



我是MVVM结构的新手。我想制作一个在raw文件夹中有一个本地JSON文件的应用程序,并加载它的数据并将其显示在屏幕上。我对如何在MVVM结构中加载数据感到困惑。我认为,我应该在存储库中加载数据,但那里没有context对象,根据我的搜索,将context传递到存储库不是一个好主意。我搜索了很多,但很遗憾,我找不到相关信息。

您可以在Repository中创建传递Context,它没有任何错误。您不应该做的是将存储库创建为独立类。相反,创建一个名为Repository的接口,该接口将有一个访问文件并返回json字符串的方法。

然后创建一个名为RepositoryImpl的类,该类的构造函数中可以有上下文,并扩展Repository接口。在大多数应用程序中,RepositoryImpl样式类的实例是使用依赖注入框架(如Dagger/Hilt/Koin(创建的,并且在某种程度上,依赖上下文/上下文的对象是通过注入参数传递的。

在某种程度上,这确保了您的接口保持干净和抽象,同时您的实现变得依赖于平台,并且更改实现不会影响通过接口使用它的代码。代码也保持可测试性。

最新更新