我刚刚开始学习CleanArchitecture
并将其应用于我的Android项目。
我看到这里有2个很好的来源
1)https://github.com/android10/Android-CleanArchitecture
2)https://github.com/fiveagency/Reedly(https://five.agency/android-architecture-part-4-applying-clean-architecture-on-android-hands-on/)
当前,第一个来源使用domain (inside UseCase
)中的CompositeDisposable
,第二个来源使用presentation/app(Presenter
/ViewModel
)
据我目前的理解,将CompositeDisposable
放在Presenter/ViewModel
中可以看到好处。
CompositeDisposable
中UseCase
,则对于每个UseCase
我们都需要处置一次呼叫)UseCase
(例如:UseCase1
执行然后将flatMap / zip ...与UseCase2
组合)当我们将CompositeDisposable
放入UseCase
时,我看到了好处
RX
与演示文稿分开我不知道2方法是否有其他优点/缺点。我从未在实际项目中使用CleanArchitecture
,而且我知道当我们采用任何一种方法时,都很难改变为另一种方法。
对于我来说,目前我认为我会选择:将CompositeDisposable
放在UseCase
中。
我应该使用什么?还有其他方法吗?
任何帮助或建议将不胜感激。
答案 0 :(得分:2)
谈到干净的架构,我已经使用 1)Android-CleanArchitecture 大约一年了。在处理CompositeDisposable
时,如果我是我,我会在Presenter
中进行处理,因为它与View的生命周期密切相关,并且它控制着CompositeDisposable
在其中的数据流这种情况属于。
建议:
使用ViewModels将 1)Android-CleanArchitecture 从MVP转换为 Presentation层em>中的MVVM,然后将CompositeDisposable
放置在那里。带有Google新ViewModel库的MVVM消除了您自己管理依赖生命周期的对象的麻烦,而该CleanArchitecutre
模板中的MVP则无法实现。
希望这可以使事情变得简单。祝你好运:)