iOS中的MVVM:谁负责组装?

时间:2016-10-17 09:57:13

标签: ios design-patterns mvvm swift3

我正在尝试在我的iOS项目中应用library(data.table) setDT(xxx)[, n := .N, rleid(x_int)] 架构,并且我已经阅读了一些文章,例如this one,据说:

  

(...)我们可以制作应用程序范围的路由器服务,该服务将负责执行程序集和视图到视图演示文稿

但我没有找到任何这类课程的代码示例,我真的很感激有人可以解释为MVVM程序集实现这种“路由器”类的适当方法,或者说我在哪里可以找到一个例子。

1 个答案:

答案 0 :(得分:2)

MVVM通常不会在Clean ArchitectureVIPERClean Swift应用程序中使用路由器。

MVVM中,您在UIViewController中实例化根AppDelegate,而不是设置ViewModel并将其分配给视图控制器viewModel属性。稍后,可以在MVVM中配置升级prepareForSegue场景。

This is a good explanation of MVVM,它也链接到示例项目。

您当然可以将这些概念添加到MVVM。如果您希望这样做,可以查看this Clean Swift example project,调整RouterConfigurator的实施概念,并制定您自己的自定义MVVM方法。

您的问题Who is responsible for setting up my MVVM scenewho is responsible for routing in-between scenes非常好,因为您正在查明MVVM的一个弱点:在这方面未明确的责任。

第二个主要弱点是ViewModelView之间的双向沟通​​。

双向通信也是VIPERView <-> PresenterPresenter <-> Interactor)中的一个问题。

处理所有上述问题的唯一iOS特定方法(我知道)是Clean Swift。当我离开主题时,我不再写这里了。