我刚刚开始学习并将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 CompositeDisposable)中的UseCase,第二个来源使用presentation/app(Presenter/ViewModel)中的

据我目前的了解,将CompositeDisposable放入Presenter/ViewModel会带来好处。


易于处置(因为如果在CompositeDisposable中使用UseCase,则对于每个UseCase,我们需要处置1次呼叫)
可能容易组合许多UseCase(例如:UseCase1执行,然后使用UseCase2 flatMap / zip ...)


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


它将RX与演示文稿分开


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

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

最佳答案

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

建议:

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



希望这能使事情变得顺利。祝好运 :)

09-28 04:14