【问题标题】:Who should keep DisposeBag in MVVM(+controller) on swift谁应该在 Swift 上将 DisposeBag 保留在 MVVM(+controller) 中
【发布时间】:2017-11-09 13:18:11
【问题描述】:

我尝试使用 RxSwift + MVVM 架构开发 iOS 应用程序。
我有个问题。谁应该拥有 DisposeBag 实例?
现在,我在我的代码中实现如下。

  • 视图模型有一个“变量”实例。
  • 控制器保留 DisposeBag。
  • View 订阅 view model 的 observable 并附加控制器的 dispose bag。

设计好不好?
我想有代码标准,请给我你的意见。

【问题讨论】:

    标签: ios swift mvvm rx-swift


    【解决方案1】:

    DisposeBag 必须是副作用发生的地方。副作用不应该发生在您的视图模型中,它应该只是将输入转换为输出。因此 DisposeBag 应该在 View Controller 中。

    【讨论】:

    • 但是我们应该把视图控制器的处理包转移到视图模型吗?
    • 没有。如果设计得当,视图模型不需要处理包。 Disposables 是在订阅时生成的,并且订阅都在视图控制器中,而不是视图模型中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2016-10-10
    • 2018-03-22
    • 2011-01-18
    • 2013-07-19
    • 1970-01-01
    • 2013-09-18
    相关资源
    最近更新 更多