Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 干净的体系结构:在域或演示文稿/应用程序中使用CompositeDisposable_Android_Clean Architecture - Fatal编程技术网

Android 干净的体系结构:在域或演示文稿/应用程序中使用CompositeDisposable

Android 干净的体系结构:在域或演示文稿/应用程序中使用CompositeDisposable,android,clean-architecture,Android,Clean Architecture,我刚刚开始学习并将cleanshitecture应用到我的Android项目中。 我看到这里有两个很好的来源 1) 2) () 目前,第一个源使用中的CompositeDisposable,第二个源使用中的 据我目前的理解,当我们将CompositeDisposable放在Presenter/ViewModel中时,我看到了好处 易于处理(因为如果我们在UseCase中使用CompositeDisposable,对于每个UseCase我们需要处理调用1次) 可以很容易地组合许多UseCase

我刚刚开始学习并将
cleanshitecture
应用到我的Android项目中。
我看到这里有两个很好的来源
1)
2) ()

目前,第一个源使用中的
CompositeDisposable
,第二个源使用中的

据我目前的理解,当我们将
CompositeDisposable
放在
Presenter/ViewModel
中时,我看到了好处

  • 易于处理(因为如果我们在
    UseCase
    中使用
    CompositeDisposable
    ,对于每个
    UseCase
    我们需要处理调用1次)
  • 可以很容易地组合许多
    UseCase
    (例如:
    UseCase1
    执行,然后使用
    UseCase2
当我们将
CompositeDisposable
放入
UseCase

  • 它将
    RX
    与演示分离
我不知道2的方法是否还有其他的优点/缺点。我从不在实际项目中使用
CleanArchitecture
,我知道当我们采用任何方法时,很难改用另一种方法

对我来说,目前我想我会选择:将
CompositeDisposable
放在
UseCase
中。 我应该用什么?还有其他方法吗?

任何帮助或建议都将不胜感激。

说到清洁体系结构,我已经使用了1)Android清洁体系结构大约一年了。如果我是你的话,我会在
Presenter
中处理
CompositeDisposable
,因为它与视图的生命周期密切相关,它控制着
CompositeDisposable
在这种情况下所属的数据流

建议:

将Android CleanArchitecture
从MVP转换为表示层中的MVVM,并在其中处置您的
CompositeDisposable
。带有谷歌新ViewModel库的MVVM消除了自己管理生命周期相关对象的麻烦,而此
CleanArchitecutre
模板中的MVP无法提供这些麻烦



希望这能把事情弄清楚一点。祝你好运:)

非常感谢你的建议。然而,我仍然不知道这一部分
它控制着数据流,在这种情况下,CompositeDisposable属于
,我的意思是
Presenter
负责触发域事件(交互者/用例),这就是为什么
Presenter
也应该是正在清除(处置)的数据流的原因这些事件实例。我说得更清楚了吗?顺便说一句,您不应该担心将RX与表示层分离,因为它不仅可以用于数据请求。更具体地说,您应该在
Presenter
中使用
UseCase
实例来处理RX,该实例中有
CompositeDisposable
。它实际上已经在模板中实现了,谢谢你的解释。我理解得更清楚了。除此之外,我看到如果我们将CompositeDisposable放在Presenter/ViewModel中,代码看起来比放在Usecase中更简单。我认为这可能是一个很好的观点