为什么在android中使用MVVM而不是MVC

Dev*_*ath -3 android mvvm android-databinding

我所知道的

  • 我已经在 android 中使用 MVC 一段时间了
  • 现在我正在学习 MVVM 和数据绑定
  • 我知道两者之间的架构差异

问题

  • MVVM 的使用对 MVC 有何优势
  • 在 MVVM 中使用 ViewModel 进行自动化单元测试有什么优势
  • 与 MVC 相比,我们在 MVVM 中编写更多代码来执行类似的任务。那么有什么优势呢
  • 我什么时候需要选择 mvc 而不是 mvvm & visversa

Dhe*_*ria 6

MVC(模型视图控制器)

\n\n

我认为这是软件开发中使用最广泛的方法。模型视图控制器由三个主要组件组成,整个架构围绕这三个组件展开。

\n\n

视图:- 该组件直接与用户交互,并负责用户如何查看我们的应用程序。在MVC中,Xml被视为视图。

\n\n

模型:模型是应用程序的数据源,主要业务逻辑在这里定义,它包含应用程序中使用的数据对象并向用户显示。数据源可以是Web、本地数据库(sqlite)等。

\n\n

控制器:- 这是MVC模式的重要组成部分,控制器是操作、编辑、使用数据模型并通过视图将其显示给用户的组件。控制器负责收集所有数据并充当模型和视图之间的中间人。Activity/Fragment 在 Android 中被视为控制器。\n在此输入图像描述

\n\n

MVVM(模型视图视图模型)

\n\n

模型视图视图模型是在去年\xe2\x80\x99s Google I/O 上引入的。这种架构计划因其提供的功能而变得流行。它主要实现数据绑定框架,它允许将视图的\xe2\x80\x9c绑定\xe2\x80\x9d到任意对象上的字段。当字段更新时,框架会收到通知,视图也会自动更新。该架构在其组件之间引入了双向通信。除了绑定、自动更新视图等功能外,它还易于测试。模型和视图的功能与我们在 MVP 中讨论的相同。

\n\n

View-Model :- 它负责公开方法、命令和其他有助于维护视图状态的属性,根据视图上的操作操作模型,并触发视图本身中的事件。视图有一个引用View-Model,但View-Model没有关于View的信息。View和View-Model之间存在多对一的关系,意味着多个View可以映射到一个View-Model。它完全独立于视图。

\n\n

MVVM 是 Android 应用开发的最佳架构。您可以通过下面的表格了解更多信息。

\n\n

在此输入图像描述

\n