【面试常问】MVVM,MVC,MVP设计模式

MVC(Model-View-Controller)

MVC将应用程序分为三个主要部分:

  1. Model(模型):代表应用程序的数据和业务逻辑。它处理数据的存储、检索和验证等任务。模型不关心数据的显示方式,只关注数据的处理。
  2. View(视图):负责数据的展示。它是用户看到的界面,比如网页、窗口或表单等。视图通常会从模型中获取数据,并将其以可视化的方式呈现给用户。
  3. Controller(控制器):作为模型和视图之间的协调者。它接收用户的输入(如点击、触摸等),并根据这些输入更新模型和视图。控制器确保模型和视图之间的通信是同步的。

MVC模式有助于实现关注点分离,使得代码更加模块化、可维护和可测试。然而,在某些复杂的UI场景中,视图和控制器之间的交互可能会变得复杂,导致代码难以维护。

MVVM(Model-View-ViewModel)

MVVM是MVC的一个变种,它解决了MVC中视图和控制器之间紧密耦合的问题。MVVM将MVC中的Controller替换为ViewModel,使视图和模型之间的通信更加清晰和直接。

  1. Model(模型):与MVC中的模型相同,代表应用程序的数据和业务逻辑。
  2. View(视图):与MVC中的视图相同,负责数据的展示。
  3. ViewModel(视图模型):是视图和模型之间的适配器。它包含视图所需的数据和命令,并将它们暴露给视图。视图模型将视图从复杂的业务逻辑中解耦出来,使得视图可以专注于数据的展示,而无需关心数据的来源和处理方式。

MVP(Model-View-Presenter)

是对MVC(Model-View-Controller)模式的改进,主要解决了MVC模式中视图和模型之间的紧耦合问题。

  1. Model(模型):负责数据的处理和存储,包含业务逻辑和数据。它与MVC中的模型类似,但更侧重于数据的处理和业务逻辑的实现。
  2. View(视图):负责用户界面的展示,它是用户与之交互的界面部分。与MVC不同的是,在MVP中,视图并不直接使用模型,而是通过Presenter进行交互。
  3. Presenter(演示者/表示器):作为视图和模型之间的协调者,主要负责和model和view的双向交互。Presenter接收视图的输入,更新视图并与模型进行交互。这样,视图和模型之间的耦合度大大减少,使得代码更加模块化和可测试。

其中,MVC可能会导致前端开发效率不高,前后端职能不清等问题,MVVM中的viewmodel通过数据相应式机制自动相应model中数据变化,减少了大量DOM操作代码,提高开发效率,提高性能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值