模型视图 Presenter2025年3月17日 | 阅读 3 分钟 在本教程的前一节中,我们讨论了 MVC 的另一种设计模式,即模型-视图-视图模型,在其中,我们创建了一个新的组件视图模型,负责数据操作任务。 但是,我们可以有一个更好的替代方案,因为视图控制器仍然做了很多工作,因此,在 MVC 中存在缺乏分布,在 MVVM 中也存在一点。 此外,控制器与视图生命周期紧密相关,因此,测试视图控制器确实变得非常困难。 在本教程的这一部分中,我们将讨论另一种替代设计模式,即 MVP(模型-视图-呈现器),它将主要的组件呈现器添加到方案中。 什么是 MVP?模型-视图-呈现器(MVP)是一种设计模式,将对象分为三个主要组件:模型、视图和呈现器。 现在,视图控制器被认为是视图,而呈现器包含应用程序的所有业务逻辑。
![]() MVP 遵循被动视图模式; 也就是说,所有操作都将转发给呈现器,呈现器使用委托更新 UI 元素。 视图将传递操作并侦听呈现器的更新。 呈现器也会相应地更新模型。 示例在本例中,我们将构建一个简单的登录应用程序,该应用程序遵循 MVP 架构。 在这里,我们将创建一个呈现器、一个视图控制器和一个 UserModel。 界面生成器 在这个项目的 storyboard 中,我们将在一个视图控制器中添加两个视图。 在第一个视图上,我们将添加两个文本字段以从用户处获取输入,以及一个提交按钮,在另一个视图上,我们将显示一条成功消息。 最初,第二个视图将被隐藏,并在成功登录时显示。 ![]() 在上图中,内部视图显示在 storyboard 中。 现在我们将在该视图上方添加另一个视图,并将背景颜色设置为黑色,透明度为 60%。 它将如下所示。 ![]() 现在,我们将介绍项目的设计模式。 在这里,我们将遵循 MVP 作为设计模式。 我们将在项目中创建以下文件夹结构。 ![]() LoginPresenter 将包含应用程序的所有业务逻辑。 当用户在输入用户名和密码后单击提交按钮时,将触发其 submitButtonClicked 方法。 它执行验证并在确认时创建模型对象。 它还通过视图控制器实现的委托方法更新 UI。 LoginPresenter.swift LoginViewController.swift UserModel.swift |
我们请求您订阅我们的新闻通讯以获取最新更新。