在MVP中,谁应该处理导航?

时间:2010-11-05 22:10:29

标签: mvp

我相信Presenter是负责处理MVP应用程序导航方面的人。这是真的还是有例外?

2 个答案:

答案 0 :(得分:5)

我认为视图是唯一负责屏幕导航的视图。 Here我们对这个“Android-MVP问题”有一个很好的解释,我有两个理由以这种方式思考:

1 - 基本上对我而言,屏幕转换不过是一种视图行为。它属于 state 视图。我们知道演示者必须通过视图方法控制视图状态,但实际上是实现这种转换的视图(例如,调用startActivity)。

2 - 屏幕之间的导航有一些Android SDK依赖,如Intents,Bundles,FragmentsManagers等...如果你想使用MVP + Clean Architecture(强烈推荐),你“不能”分享android您的演示者之间的依赖关系,因为它们应该只是java,以使单元测试更容易。

答案 1 :(得分:2)

你是对的。模型无法做到,视图无法做到。

在我的应用中,导航是通过从最大的演示者级联到较小的演示者来处理的。例如,整个应用程序演示者获取整个位置,解析它,并将任何相关的部分发送给下一个演示者,以获得更精细的细节。