在 MVP 模式中,Presenter 应该是 Android 应用程序的活动方式还是功能方式
Posted
技术标签:
【中文标题】在 MVP 模式中,Presenter 应该是 Android 应用程序的活动方式还是功能方式【英文标题】:In MVP pattern, should Presenter be activity-wise or functionality-wise of Android app 【发布时间】:2018-02-24 22:58:32 【问题描述】:在使用 MVP 模式构建 android 应用时,我想知道我应该使用 Presenter 活动方式还是功能方式?
Activity-wise 表示,演示者的数量等于活动的数量。
功能方面的意思是,对于每个功能,应该使用单独的 Presenter。
【问题讨论】:
这似乎不是 SO 的问题,而是programmers.stackexchange.com 的问题 检查 google 的代码实验室关于 MVP 模式 @Raghunandan 嘿,谢谢兄弟,谷歌关于 MVP 的不错的代码实验室..知道了 :-) 【参考方案1】:对我来说,它应该是 Activity-wise,因为一个屏幕可能有更多的功能,并且为每个屏幕设置演示者将需要太多的演示者,而且将它们组织到一个屏幕中会很痛苦。 两者之间是一个基于意见的问题。
【讨论】:
如果一个 Activity 有许多片段,而所有这些片段只有一个演示者,并且将来想在另一个 Activity 中使用其中一些片段怎么办?? 实际上,我的做法是每个屏幕都有一个演示者。因此,如果您的活动有很多片段,每个片段都有演示者,并且如果您的活动有一些要呈现的视图,那么也有演示者到活动。以防万一的列表视图,我将对列表中的每个视图进行演示【参考方案2】:功能方面,因此您可以在多个活动中重复使用演示者。
另外:Presenter 不应该有 Views 甚至 Context 的引用用于测试目的。
【讨论】:
【参考方案3】:我个人的做法是,它取决于逻辑,每个都有它的优点和缺点。 假设一个活动有一个列表片段和一个细节片段,如果这些片段你很确定它们只会与这个活动一起使用,那么你可以有一个演示者,但是如果你想在其他中使用细节或列表片段怎么办活动,或者如果它是人员列表和每个人的详细信息,那么您可以打开登录的用户详细信息视图(从人员列表以外的地方)?您将使用相同的活动演示者(在架构方面不是那么好),所以在这种情况下,我认为有 2 个演示者是更好的方法!
简而言之,它没有规则,它只是取决于您是要在其他场景中使用视图还是视图仅附加到此 Activity。
【讨论】:
现在我决定让演示者的屏幕更明智。因为我必须在很多地方重复使用这些屏幕..谢谢你的回答..以上是关于在 MVP 模式中,Presenter 应该是 Android 应用程序的活动方式还是功能方式的主要内容,如果未能解决你的问题,请参考以下文章