我是MVVM
结构的新手。我想制作一个在raw
文件夹中有一个本地JSON文件的应用程序,并加载它的数据并将其显示在屏幕上。我对如何在MVVM
结构中加载数据感到困惑。我认为,我应该在存储库中加载数据,但那里没有context
对象,根据我的搜索,将context
传递到存储库不是一个好主意。我搜索了很多,但很遗憾,我找不到相关信息。
您可以在Repository
中创建传递Context
,它没有任何错误。您不应该做的是将存储库创建为独立类。相反,创建一个名为Repository
的接口,该接口将有一个访问文件并返回json字符串的方法。
然后创建一个名为RepositoryImpl
的类,该类的构造函数中可以有上下文,并扩展Repository
接口。在大多数应用程序中,RepositoryImpl
样式类的实例是使用依赖注入框架(如Dagger/Hilt/Koin(创建的,并且在某种程度上,依赖上下文/上下文的对象是通过注入参数传递的。
在某种程度上,这确保了您的接口保持干净和抽象,同时您的实现变得依赖于平台,并且更改实现不会影响通过接口使用它的代码。代码也保持可测试性。