模型视图 View-Model2025年3月17日 | 阅读 3 分钟 在上一节中,我们讨论了 MVC 设计模式,它易于理解和使用。 然而,MVC 也有一些缺点,导致了一种新的设计模式的演变,即模型-视图-视图模型。 在本教程的这一部分,我们将详细讨论 MVVM 的组件。 我们还将探讨模型-视图-控制器设计模式的局限性。 什么是 MVVM?MVVM(模型-视图-视图模型)是一种 iOS 架构设计模式,我们将对象分离成三个主要组件。
![]() MVVM 在 MVC 设计模式中添加了一个新的组件视图模型,从而可以最小化视图控制器的角色,并且业务逻辑可以在视图模型中进行。 MVC 的问题MVC 最常见的问题是数据格式化。 在 MVC 中,模型包含应用程序的数据。 在开发 iOS 应用程序时,需要在将数据呈现给用户之前对其进行格式化。 假设在一个 iOS 应用程序中,需要向用户显示日期,而日期由服务器返回。 但是,如果服务器将日期以长毫秒格式返回,并且我们向用户显示服务器返回的确切日期,那么用户将如何理解日期格式。 因此,需要使用日期格式化程序将此日期格式化为字符串。 在 MVC 中,问题在于格式化发生的位置。 并不需要告诉模型有关向用户显示的数据。 模型不需要理解向用户显示的数据;因此,唯一可用于放置格式化代码的对象是控制器,因为控制器在拥有如此多的业务逻辑(包括数据源和委托方法)之后已经很重了。 因此,控制器在 MVC 中变得非常重,因为所有数据操作任务也都在控制器中进行。 在哪里使用 MVVMMVVM 提供了对 MVC 中重量级控制器的问题的解决方案。 它在方案中添加了第四个组件,即视图模型。 视图模型负责管理数据操作任务,并且它还通过视图控制器将模型的数据传输到视图来管理模型。 这种模式可用于我们需要将模型转换为另一种用于视图的表示形式。 例如,我们可以使用视图模型将日期对象转换为格式化的字符串,将十进制值转换为格式化的货币字符串等。 这种模式很好地补充了 MVC。 目的在于通过添加另一个组件来最小化视图控制器的角色。 但是,视图控制器仍然执行一些主要处理,包括出口和将格式化数据注入到出口中。 MVVM 项目架构下图定义了遵循 MVVM 作为设计模式的 XCode 项目的架构。 ![]() 下一主题模型-视图-呈现器 |
我们请求您订阅我们的新闻通讯以获取最新更新。