我刚刚开始学习并将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 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无法实现。
希望这能使事情变得顺利。祝好运 :)