使用MVVM使UITableView和UICollectionView更轻便
有时,同时使用UITableView和UICollectionView会导致膨胀的视图甚至是控制器。 当我们需要动态更改数据类型时,事情变得更加复杂。 可以说我们有如下两个部分:
在屏幕下方,有两个单独的部分,这意味着我们需要两个单独的模型,并且这两个模型是一致配置的。 如果选择“订单”,则必须使用“订单”模型在表格视图中准备单元格。 相反,当我选择“已完成订单”时,我还必须在表格视图中准备带有相关模型的单元格。
对于这种情况,我创建了两个不同的模型,第一个模型用于活动订单,第二个模型用于完成的订单,例如 对于这种情况,分离数据源会更加有益。 我们不应该将数据源文件重新使用到同一应用程序中。 相反,我们应该按表和集合视图创建数据源。 这样,我们可以测试我们的视图模型,模型甚至数据源!
我的ViewModels现在有非常简单的工作。
我们的数据源仅实现UITableViewDataSource或UICollectionViewDataSource
最后,我们的视图控制器只做一件事; 在视图和视图模型之间进行调解! 通常,我们应该保持视图控制器的亮度。 这样,如果我们可以对视图模型进行单元测试,则可以增加我们的测试覆盖率和应用程序关联性,并执行一点SRP(单一责任原则)规则。
当采用这种方法使red-green-refactor标准变薄时,我们可以测试几乎所有的业务逻辑。 我们可以像我之前说过的那样测试模型,查看模型甚至数据源。