当来自服务层的数据需要在不同的表示实体之间共享时该怎么办

What to do when data from the service layer needs to be shared between different presentation entitites

首先,如果我的术语有误,请原谅我。术语很重要,但相似的概念通常用不同的术语来表达。 假设我的表示层中有两个定义不明确的 "entities",它们必须使用从服务层检索到的相同数据。实体应该是什么?

这些实体都应该是 MVP 的提出者吗?如果是这样,创建两个以某种方式处理相同数据(但当然以不同方式)的 MVP 三元组是否有意义?

一个演示者和多个视图可能更好吗? 或者是说Model太臃肿了,应该拆分成不同的模型?

尽管我确定我们的代码中某处存在设计问题,但我注意到我们有几个 类,它们甚至不能定义为演示者,它们独立使用来自服务层的相同数据,而这很困扰我。

在 MVP 中,Presenter 与每个 View 紧密耦合(因为它控制着 View 的行为)。这意味着如果您有多个差异很大的视图,那么您还需要有多个演示者。

但是 View 和 Presenter 都没有保存任何数据。模型是应用程序中数据当前状态的表示。

因此,如果您从服务层获取的数据在两种情况下都以相同的方式处理(只是呈现方式不同),那么您应该有一个模型,供两个演示者引用。

但是,如果您获取的只是某种以非常不同的方式处理的 "raw" 数据,那么您可能还应该为每个 Presenter/View 创建一个自己的模型。该模型可以引用获取的数据,这些数据可以保存在服务层或更高级别的模型对象中的某处。