android - MVP 交互者和用例的关系

标签 android architecture mvp android-mvp

我最近一直试图从架构的角度来理解 MVP 架构中交互器和用例之间的关系。我的疑问是关于部件之间的通信以及符合 MVP 标准的内容。

问题是我见过很多相互矛盾的流程图。其中一些似乎每个演示者都有一个交互者,另一些似乎每个演示者有多个交互者(每个交互者持有多个相互关联的用例,例如所有与用户相关的案例),而其他似乎没有完全使用交互器,只与演示者直接交流用例。

我的主要(和漂亮的菜鸟)问题:从 MVP 的角度来看,是否可以让一个演示者与多个交互者进行通信,或者每个演示者应该只是一个交互者? 在某些情况下,特定 View 需要来自各种不同模型的数据,那么有人将如何处理这些数据?

为了问题的完整性,我附上了一个演示者持有两个交互者的流程图,并说明我的观点需要处理不同模型结构的演示者(一个用户属于一家公司,但假设我也需要显示只能通过 CompanyInteractor 获得的其他公司信息,并且在 UserInteractor 上复制没有任何意义)。 如果“每个演示者一个交互者”是答案,那么每个演示者的单个交互者是否应该与演示者需要的所有不同的、不相关的用例进行通信?

谢谢

enter image description here

PS:对于流程图的困惑,使用draw.io *耸耸肩* 3分钟抱歉。

最佳答案

只要只有一个 View ,您就可以根据需要使用尽可能多的交互器。没有限制,但为了避免样板编码,通常一个交互器就足够了。

在您的场景中,您可以拥有 Base Presenter从中您可以将请求传递或接收到相应的类。

MVP规则:

separate the presentation(View) layer from the logic.

关于android - MVP 交互者和用例的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416748/

相关文章:

android - 我可以使用 ChromeCast 从电视获取音频吗

mysql - 如何有效地对基于时间的数据集进行分组以计算组平均值和中位数

sql - 实现基于策略、基于时间和基于客户的定价

android - RxJava 2 + Retrofit 2(或长异步任务)+ Dagger 2 + MVP VS。改变方向

c# - 模型 View 演示器 : Validate UI

asp.net - Asp.Net WebForms 上的 MVP

android - 完全禁用 Android GridView 突出显示(禁用选择)

java - 如何检查是否有任何文件丢失

android - 服务内的 BroadcastReceiver 未处理通知操作的广播

model-view-controller - pjax 还是客户端 MVC?