【发布时间】:2019-11-02 15:59:11
【问题描述】:
到目前为止,我已经观察到 MVVM 设计模式的多个流程。不确定这两个中哪一个是正确的?
假设我们想在 tableview 中显示天气数据。
流程 1:(在此流程中,viewcontroller 将永远不会在其中包含数据模型对象(即使在 tableview 中也不用于显示目的),每当 viewcontroller 想要进行通信时,它将仅通过 viewmodel 进行通信)
- viewcontroller 通知相关 viewmodel 获取天气数据。
- viewmodel 查询 API 来获取天气数据。
- 从 API 获取数据后,通知视图控制器的视图模型已到达。
- 视图控制器重新加载 tableview。
- tableview 单元格从 viewmodel 获取天气信息,匹配 tableview 索引路径。
流程 2:(在此流程中,viewcontroller 使用/访问数据模型对象以在 tableview 中显示)
- viewcontroller 通知相关 viewmodel 获取天气数据。
- viewmodel 查询 API 来获取天气数据。
- 从 API 获取数据后,视图模型通知 viewcontroller 数据已到达,并随之发送相关数据。
- 视图控制器重新加载 tableview 并显示它从 viewmodel 获得的天气数据。
【问题讨论】: