Android 是否应在视图或演示者上进行观察/订阅?

Android 是否应在视图或演示者上进行观察/订阅?,android,rx-java,mvp,Android,Rx Java,Mvp,例如,如果有一个带有按钮(视图)的活动。当按下此按钮时,它调用一个Presenter方法,此方法从服务(模型)中获取一个可观察的对象-这可能需要很长时间才能回复结果 这些结果的订阅者是否应该保留在演示者上?然后根据结果,演示者将调用相关视图的操作 或者订户应该在视图中?正如我在其他rx android示例项目中看到的那样。在这种情况下,活动/片段将根据订阅的结果调用其他View或Presenter方法。Presenter应在View尽可能简单的情况下完成所有逻辑和繁重的工作。它只注册用户输入,并

例如,如果有一个带有按钮(视图)的活动。当按下此按钮时,它调用一个Presenter方法,此方法从服务(模型)中获取一个可观察的对象-这可能需要很长时间才能回复结果

这些结果的订阅者是否应该保留在演示者上?然后根据结果,演示者将调用相关视图的操作


或者订户应该在视图中?正如我在其他rx android示例项目中看到的那样。在这种情况下,活动/片段将根据订阅的结果调用其他View或Presenter方法。

Presenter应在View尽可能简单的情况下完成所有逻辑和繁重的工作。它只注册用户输入,并在所有操作完成后显示结果

这些结果的订阅者是否应该保留在演示者上?然后 根据结果,演示者将调用相关视图的 行动


是的,这是正确的方法。

演示者应该在视图尽可能简单的情况下完成所有逻辑和繁重的工作。它只注册用户输入,并在所有操作完成后显示结果

这些结果的订阅者是否应该保留在演示者上?然后 根据结果,演示者将调用相关视图的 行动


是的,这是正确的方法。

MVP模式的主要目标是将数据访问机制与视图(活动、片段)分离。为了使应用程序易于扩展和维护,我们需要定义分离良好的层

如果在视图中返回订阅服务器,那么它将打破MVP模式。你应该让你的观点尽可能的愚蠢。因此,您应该在presenter层上订阅,并让presenter层决定视图中的下一步是什么。当视图上可能发生不同类型的操作时,可能会出现某些情况。这种逻辑不应该出现在人们的视野中

**注:这只是一个建议。让你的观点变得愚蠢。但是,您必须根据视图执行的操作来决定该视图的愚蠢程度。例如,有一个按钮,其单击事件弹出一个是/否类型的对话框。您不应该在按钮单击时给演示者打电话,让它告诉视图打开对话框


但是在上面描述的情况下,您应该使用presenter层。

MVP模式的主要目标是将数据访问机制与视图(活动、片段)分离。为了使应用程序易于扩展和维护,我们需要定义分离良好的层

如果在视图中返回订阅服务器,那么它将打破MVP模式。你应该让你的观点尽可能的愚蠢。因此,您应该在presenter层上订阅,并让presenter层决定视图中的下一步是什么。当视图上可能发生不同类型的操作时,可能会出现某些情况。这种逻辑不应该出现在人们的视野中

**注:这只是一个建议。让你的观点变得愚蠢。但是,您必须根据视图执行的操作来决定该视图的愚蠢程度。例如,有一个按钮,其单击事件弹出一个是/否类型的对话框。您不应该在按钮单击时给演示者打电话,让它告诉视图打开对话框


但是在您上面描述的情况下,您应该使用presenter层。

我建议始终保持presenter上的订阅。如果允许视图“查看”模型,它应该只以一些简单的方式与模型交互,例如数据绑定和简单验证。否则,视图将被转储,演示者将继续执行所有业务逻辑

被动视图和监控控制器是MVP的两种变体,仅供参考


还请在上查看Android的新MVP框架。上面的示例解释了这些变体之间的差异。玩得开心

我建议始终保持对Presenter的订阅。如果允许视图“查看”模型,它应该只以一些简单的方式与模型交互,例如数据绑定和简单验证。否则,视图将被转储,演示者将继续执行所有业务逻辑

被动视图和监控控制器是MVP的两种变体,仅供参考

还请在上查看Android的新MVP框架。上面的示例解释了这些变体之间的差异。玩得开心