我根据下面介绍的方案实现 MVVM。请告诉我我是否正确理解了这张图:
- 如果我需要从外部源加载数据并将其添加到内部存储,那么我从存储库访问远程数据源,然后将其从存储库发送到内部存储?
- 如果我从内部存储接收到数据,并且我需要对它们额外执行一些额外的操作(计算),我是否也在 Repository 中执行此操作?
- 在 Fragment 中,我有一个 RecyclerView,它显示了几个包含数字的 EditText。当其中一个 EditTexts 中的一个数字发生变化时,会重新计算该 RecyclerView 的剩余 EditTexts 的内容(所有新数据必须存储在 storage 中)。以前,我只是把它全部放在适配器中。如何使用 MVVM 正确实现它(应该在哪里),即 在哪里进行这种重新计算是正确的,更新 RecyclerView 适配器的值,然后将值保存在存储中。
当然,我查看了具有 MVVM 实现的应用程序示例,但它们都太简单了,所以上面的问题仍然存在。
在 MVVM 中,所有与逻辑相关的东西都需要写在 ViewModel 中。这就是她的本意。在大型应用程序中,它们通常会被具有更多层的Clean Architecture排斥。为了便于进一步解释,我将上图分解如下:
Activity/Fragment - 视图层
ViewModel - 分成几层:ViewModel + Interactor(或 UseCase)
所有其他块保持不变。
现在为您的问题:
在我看来,如果您阅读有关 CleanArchitecture 的几篇文章(它可以适用于任何 MV * 模型),您会更清楚该写什么以及在哪里写