📜  MVVM –面试问题(1)

📅  最后修改于: 2023-12-03 15:03:04.283000             🧑  作者: Mango

MVVM – 面试问题

简介

MVVM 是一种软件设计模式,特别是用户界面中,已经被广泛采用。MVVM 架构中的每个字母都代表了一个部分:Model(模型)、View(视图)和 ViewModel。这种模式经常用于基于 XAML 的技术,如 WPF、Windows Phone 和 Xamarin。

MVVM 的组成部分
  1. Model:模型是应用程序中的主要数据模型,用于访问数据和处理数据。
  2. View:视图是用户界面的呈现部分,提供对用户的输入响应和呈现数据。
  3. ViewModel:ViewModel 是连接视图和模型的纽带,用于将数据从 Model 传递给 View,同时处理 View 中的用户输入。
MVVM 与其他设计模式的比较
MVC

MVC 模式是将应用程序分隔为三个部分:Model(应用程序的主要数据模型)、View(用户界面的呈现部分)和 Controller(负责处理业务逻辑)。在此模式中,用户通过 View 和 Controller 与 Model 进行交互。MVC 的缺点是需要在 View 和 Model 之间协调很多消息传递。

MVVM 与 MVC 相比,允许对 Model 进行修改和维护,并提供了一种可以简化消息传递的机制。

MVP

MVP 模式将应用程序分为三个部分:Model(应用程序的主要数据模型)、View(用户界面的呈现部分)和 Presenter(充当中介的 Controller)。Presenter 处理用户输入并决定何时与 Model 交互。MVP 要求 Presenter 需要有对 View 的引用。

MVVM 模式允许将 View 与 ViewModel 的绑定处理交给框架完成,而不是在 Presenter 中进行手动绑定。

MVVM 经典问题
1. MVVM 模式是什么?为什么使用它?

MVVM 模式是一种用户界面设计模式。这种模式是由 Model-View-ViewModel 三个部分组成。

当我使用 MVVM 模式时,我可以更清晰地组织我的代码,并帮助我更好地控制程序和界面在不同方面的行为。

2. 它是怎么工作的?
  • Model 类与 ViewModel 一起工作,通过使用数据绑定来处理 View 响应中的更改。
  • View 与 ViewModel 相连接,以处理无处不在的使用者输入。
  • ViewModel 充当介于 View 和 Model 之间的引擎,但仍然包含代码以处理使用者输入。
  • ViewModel 提供视图可以绑定的方法以及对 Model 执行的操作。
  • 通过在 ViewModel 类中使用双向数据绑定,可以将 ViewModel 和 View 提供的方法和属性绑定在一起,View 的 UI 变化都可以通过绑定反映到 ViewModel 中去,ViewModel 中的数据更改也可以通过绑定反映到 ViewUI 。
3. 优点有什么?

使用 MVVM 模式:

  • 能够轻松地分离代码的 UI 层(视图)与业务层(逻辑)。
  • 充分利用 WPF/SL(DotNet) 的数据绑定特性,提供了一种更加直截了当的方式来管理和控制用户界面。
  • 提供了一种更加干净和有条理的方法来管理用户界面。
  • 使测试更加容易。
4. MVVM 模式使用的数据绑定机制是什么?

MVVM 模式使用的数据绑定机制包括:

  • INotifyPropertyChanged 接口:用于通知进行数据绑定的元素发生了更改。
  • ICommand 接口:用于将命令绑定到用户界面元素上,以便在用户与该元素交互时自动执行代码。
  • DependencyProperties: 一种特殊的属性,允许在 MVVM 模型中更改特定视图元素的属性,同时确保连接的视图元素得到正确的更新。
5. ViewModel 与 Model 之间的关系?

ViewModel 和 Model 之间的关系是 ViewModel 服务于视图和 Model,同时使视图可用。ViewModel 处理视图和 Model 之间的交互,并提供视图需要的属性和方法。ViewModel 还应该确保执行期间 ViewModel 的状态与视图和 Model 同步。

结论

MVVM 模式是一种强大的模式,使程序员能够更轻松地分离前端和后端代码,并更轻松地处理应用程序的各个部分。这种模式是直接针对网页和平台应用程序设计的,可使您轻松地维护和编写代码。