我读过一些关于在 Android 中使用 MVP 模式的文章。对我来说最好的方法是创建合同(每个模型、视图和演示者一个接口)。问题是我应该为每个活动创建这样的合同,或者如果我的应用程序中有几个活动,如何实现它。谢谢
1 回答
简而言之,
没有限制,完全取决于您,取决于您的项目结构。因此,您必须找到适合您项目的最佳方案。
但是,让我从广义上清除一切
首先,您应该了解,这些架构模式的开发是为了让开发人员的生活更轻松,但它们从未对您将为哪个部分创建多少类进行任何确切的要求。这完全取决于项目结构和应用程序的功能。一切都取决于开发人员 - 您可以按照自己的方式进行设计。但是,显然,有许多开发人员遵循的最佳实践。
模型负责数据处理或数据管理。所以,会有多少模型,这与有多少活动或视图无关。因此,模型类的数量完全取决于您的数据集以及您如何表示它们以便于访问。
我们可以认为项目中的每个活动都代表了应用程序的每个单独的 UI 屏幕。从这个意义上说,对于每个活动,您应该至少创建一个视图。
所以,这就是 MVP 的主题,即模型和视图将彼此隔离。但是,Presenter 呢?是的,它是连接模型和视图以便在它们之间进行通信的一种,因为它们不是直接连接的。
Presenter 实际上包含应用程序的业务逻辑,因此一个视图可以向 Presenter 请求某些内容,而 Presenter 从模型中收集这些内容并将其发送回视图。因此,最佳实践是为每个视图创建一个演示者,以保持一切简单。但是,显然存在一些场景,多个视图可以使用相同的业务逻辑。在这种情况下,一个演示者可以提供两个单独的视图。这也完全没问题。
所以,现在你应该明白了,为视图和演示者创建界面并不是绝对必要的。但是,如果您遵循我之前提到的 MVP 的一种良好实践,尝试为每个视图创建一个演示文稿,在这种情况下,为它们创建一个界面将是有意义的,因为您将能够了解由您的演示者实施的视图。