我是否应该为每个 Activity 创建 Presenter 和 Model?

Should I create Presenter and Model for each Activity or not?

我在 Android 中阅读了一些关于使用 MVP 模式的文章。对我来说最好的方法是创建合同(每个模型、视图和演示者都有一个界面)。 问题是我是否应该为每个 Activity 创建这样的合同,或者如果我的应用程序中有几个活动,如何实施它。谢谢

简而言之,

没有限制,完全由你决定,取决于你的项目结构。所以,你必须找到最适合你项目的那个。

但是,让我从广义上讲清楚一切

首先,你应该明白,开发这些架构模式是为了让开发人员的生活更轻松,但它们从来没有对你将为哪个部分创建多少 class 有任何确切的要求。这完全取决于项目结构和应用程序的功能。一切都取决于开发人员——您可以按照自己的方式进行设计。但是,显然,许多开发人员都遵循最佳实践。

模型负责数据处理或数据管理。因此,那里有多少模型,与那里有多少活动或视图没有关系。因此,模型数量 class 完全取决于您的数据集以及您如何表示它们以便于访问。

我们可以认为您项目中的每个 activity 代表您应用的每个单独的 UI 屏幕。从这个意义上讲,您应该为每个活动至少创建一个视图。

所以,这就是 MVP 的主题,即模型和视图将相互隔离。但是,Presenter 呢?是的,它是连接模型和视图以在它们之间进行通信的一个,因为它们没有直接连接。

Presenter 实际上包含您应用程序的业务逻辑,因此一个视图可以向 Presenter 请求某些内容,Presenter 从模型中收集该内容并发送回视图。因此,最佳做法是为每个视图创建一个演示者,以保持一切简单。但是,显然在某些情况下,多个视图可以使用相同的业务逻辑。在那种情况下,一位演示者可以提供两个独立的视图。那也完全没问题。

所以,现在你应该明白为view和presenter创建接口并不是绝对必要的。但是,如果您正在遵循我之前提到的 MVP 的一个良好实践,尝试为每个视图创建一个演示文稿,那么为它们创建一个界面将是有意义的,因为您将能够了解 MVP 支持的所有行为将由您的演示者实施的视图。