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

时间:2018-03-20 05:56:17

标签: ios swift design-patterns clean-architecture

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

enter image description here

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

1 个答案:

答案 0 :(得分:3)

我还在几个项目中使用了 CleanSwift 。我喜欢这个架构的是它在单向流程中工作。在此流程中, ViewController 可与路由器交互器 Presenter 配合使用。 单向流程让我们可以轻松找到错误。

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

如果您只需要从一个控制器移动到另一个控制器,则在某些情况下,如果您在 Presenter 中移动路由,则会打破流量。此外,该体系结构将依赖于您,因为您必须记住,您是否在 Presenter Controller 中添加了路由机制。它还会影响协作环境,您的计数器部分必须在其中搜索路由机制。如果您观察上述情景,也需要时间来解决错误。

因此,不要打破流量,这是更好的主意。花更多钱让它变得珍贵是件好事。希望这个答案可以提供帮助。