计时器在 Viper 架构中的什么位置
Where have timer be in Viper architecture
假设我们必须每 10 秒更新一次数据。
我们应该在哪里 create/store 计时器,它会在 VIPER 架构中的什么地方触发相关方法?
ViewController 应该这样做并通知演示者吗?还是 Presenter 应该保持计时器?
更新数据不是 Presenter
或 Controller
应该关心的事情。 Presenter
(顾名思义)应该只控制演示和内容。在 VIPER 架构中,Interactor
负责处理逻辑,而 "Updating every 10 seconds" 听起来像是逻辑。所以计时器应该是 Interactor
并且在着火时,应该通知 Presenter
,然后 Presenter
相应地通知 Controller
。 (如果你认为这太多了,那就是 VIPER)
您可以在交互器中创建和存储计时器 class。
Michal Wojtysiak @ swifting.io 在这里写了一篇关于它的好文章:https://swifting.io/blog/2016/03/13/9-how-to-invalidate-nstimer-properly/?utm_source=swifting.io&utm_medium=web&utm_campaign=blog%20post
Interactor class 将负责 VIPER 架构中的计时器。
假设我们必须每 10 秒更新一次数据。 我们应该在哪里 create/store 计时器,它会在 VIPER 架构中的什么地方触发相关方法? ViewController 应该这样做并通知演示者吗?还是 Presenter 应该保持计时器?
更新数据不是 Presenter
或 Controller
应该关心的事情。 Presenter
(顾名思义)应该只控制演示和内容。在 VIPER 架构中,Interactor
负责处理逻辑,而 "Updating every 10 seconds" 听起来像是逻辑。所以计时器应该是 Interactor
并且在着火时,应该通知 Presenter
,然后 Presenter
相应地通知 Controller
。 (如果你认为这太多了,那就是 VIPER)
您可以在交互器中创建和存储计时器 class。
Michal Wojtysiak @ swifting.io 在这里写了一篇关于它的好文章:https://swifting.io/blog/2016/03/13/9-how-to-invalidate-nstimer-properly/?utm_source=swifting.io&utm_medium=web&utm_campaign=blog%20post
Interactor class 将负责 VIPER 架构中的计时器。