CleanSwift - 演示者可以直接调用路由器功能吗?

CleanSwift - Can a presenter directly call router function?

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

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

我还在几个项目中使用了 CleanSwift。我喜欢这种架构的地方在于它在 单向 流中工作。在此流程中,ViewControllerRouterInteractor 一起工作主持人单向 流让我们很容易找到错误。

让我们通过一个场景来理解这一点。假设您有一个 Button 并单击它要从 ViewController1 移动到 ViewController2。如果你写错了 ViewController3 而不是 ViewController2,现在显示的是 ViewController3 按钮点击。要解决此错误,您必须查看路由机制。你知道路由机制位于 ViewController1,所以要解决它你应该继续 ViewController1 并找到负责路由的函数并解决错误。

如果在 Presenter 中移动路由,在某些情况下只需要从一个 Controller 给另一个。此外,体系结构将取决于您,因为您必须记住是否在 PresenterController 中添加了路由机制。它还会影响协作环境,您的对方必须在其中搜索路由机制。如果您观察上述情况,也需要时间来解决错误。

所以最好不要打断流程。多花点钱,让它变得珍贵就好了。希望这个回答能帮到你。