干净的架构:在域或演示文稿/应用中使用CompositeDisposable

时间:2018-08-01 10:02:45

标签: android clean-architecture

我刚刚开始学习CleanArchitecture并将其应用于我的Android项目。
我看到这里有2个很好的来源
1)https://github.com/android10/Android-CleanArchitecture
2)https://github.com/fiveagency/Reedlyhttps://five.agency/android-architecture-part-4-applying-clean-architecture-on-android-hands-on/

当前,第一个来源使用domain (inside UseCase)中的CompositeDisposable,第二个来源使用presentation/app(Presenter/ViewModel)

据我目前的理解,将CompositeDisposable放在Presenter/ViewModel中可以看到好处。

  • 易于处置(因为如果我们在CompositeDisposableUseCase,则对于每个UseCase我们都需要处置一次呼叫)
  • 可能容易组合许多UseCase(例如:UseCase1执行然后将flatMap / zip ...与UseCase2组合)

当我们将CompositeDisposable放入UseCase时,我看到了好处

  • 它将RX与演示文稿分开

我不知道2方法是否有其他优点/缺点。我从未在实际项目中使用CleanArchitecture,而且我知道当我们采用任何一种方法时,都很难改变为另一种方法。

对于我来说,目前我认为我会选择:将CompositeDisposable放在UseCase中。 我应该使用什么?还有其他方法吗?
任何帮助或建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

谈到干净的架构,我已经使用 1)Android-CleanArchitecture 大约一年了。在处理CompositeDisposable时,如果我是我,我会在Presenter中进行处理,因为它与View的生命周期密切相关,并且它控制着CompositeDisposable在其中的数据流这种情况属于。

建议:

使用ViewModels 1)Android-CleanArchitecture 从MVP转换为 Presentation层中的MVVM,然后将CompositeDisposable放置在那里。带有Google新ViewModel库的MVVM消除了您自己管理依赖生命周期的对象的麻烦,而该CleanArchitecutre模板中的MVP则无法实现。


希望这可以使事情变得简单。祝你好运:)