我应该为每个活动创建演示者和模型吗?

Ily*_*cko 1 java mvp android architectural-patterns

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

Rak*_*lam 5

简而言之,

没有限制,这完全取决于您并取决于您的项目结构。因此,您必须找到适合您项目的最佳选择。

但是,让我在更广泛的意义上清除一切

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

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

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

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

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

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