1

我正在研究 CleanSwift 架构。我在图中看到演示者和关联的场景路由器之间没有直接通信,

在此处输入图像描述

但通常在某些情况下,演示者只需要路由到另一个视图控制器。我想知道是否允许演示者直接调用路由器 routeToOtherView() 函数,而不是在视图控制器中调用一个额外的函数来简单地重定向。

4

1 回答 1

4

我还在几个项目中使用过 CleanSwift。我喜欢这种架构的地方在于它可以单向流动。在这个流程中, ViewControllerRouterInteractorPresenter一起工作。单向流使我们能够轻松找到错误。

让我们用一个场景来理解这一点。假设您有一个 Button 并单击要从ViewController1移动到ViewController2。任何错误你写ViewController3而不是ViewController2,现在它在按钮点击时显示ViewController3 。要解决此错误,您必须查看路由机制。而且您知道路由机制驻留在ViewController1中,因此要解决它,您应该转到ViewController1并找到负责路由的函数并解决错误。

如果您在某些情况下只需要从一个控制器移动到另一个控制器时在Presenter中移动路由,那么您正在打破流程。此外,架构将取决于您,因为您必须记住您是否在PresenterController中添加了路由机制。它还会影响协作环境,您的对手必须在其中搜索路由机制。如果您观察上述场景,解决该错误也需要时间。

所以最好不要破坏流程。花更多的钱让它变得珍贵是好的。希望这个答案能有所帮助。

于 2018-03-20T06:52:10.953 回答