Android 为什么需要在MVC中使用ViewModels?

Android 为什么需要在MVC中使用ViewModels?,android,model-view-controller,view,Android,Model View Controller,View,关于MVC的两个问题: 1.NETMVC和安卓MVC有什么区别? 2为什么需要在MVC中使用ViewModels 如果有人能回答这些问题,我将不胜感激 模型视图控制器 在MVC中,控制器负责确定响应任何操作(包括应用程序加载时)显示的视图。这与MVP不同,MVP中的操作通过视图传递给演示者。在MVC中,视图中的每个动作都与对控制器的调用以及动作相关联。在web中,每个操作都涉及到对URL的调用,URL的另一侧有一个控制器进行响应。一旦控制器完成其处理,它将返回正确的视图。在应用程序的整个生命周期

关于MVC的两个问题: 1.NETMVC和安卓MVC有什么区别? 2为什么需要在MVC中使用ViewModels

如果有人能回答这些问题,我将不胜感激

模型视图控制器

在MVC中,控制器负责确定响应任何操作(包括应用程序加载时)显示的视图。这与MVP不同,MVP中的操作通过视图传递给演示者。在MVC中,视图中的每个动作都与对控制器的调用以及动作相关联。在web中,每个操作都涉及到对URL的调用,URL的另一侧有一个控制器进行响应。一旦控制器完成其处理,它将返回正确的视图。在应用程序的整个生命周期内,该顺序以这种方式继续:

Action in the View
    -> Call to Controller
    -> Controller Logic
    -> Controller returns the View.

MVC的另一个重要区别是视图不直接绑定到模型。该视图只进行渲染,并且是完全无状态的。在MVC的实现中,视图的代码中通常没有任何逻辑。这与MVP相反,MVP是绝对必要的,因为如果视图没有委托给演示者,它将永远不会被调用。

MVC是一个概念,而不是一个坚实的编程框架。您可以在任何平台上实现自己的MVC

模型:渲染什么

视图:如何渲染

控制器:事件、用户输入

问题1:Android MVC和.Net MVC

Android MVC:

在Android中,您没有MVC,但您有以下功能:

您可以通过分辨率、硬件等在各种XML文件中定义用户界面。 您可以按区域设置等在各种XML文件中定义资源。 您可以扩展ListActivity、TabActivity等类别,并通过充气器使用XML文件。 您可以为业务逻辑创建任意数量的类。 已经为您编写了很多UTIL—数据库UTIL、Html。 更多参考:

.net MVC:

Net MVC是一个开源的web应用程序框架,它实现了模型-视图-控制器MVC模式

更多参考:

问题2:为什么需要在MVC中使用ViewModels

ViewModel帮助我们以比模型或ViewBag/ViewData对象等复杂对象更灵活的方式在强类型视图中组织和管理数据。它允许您将一个或多个数据模型或源中的多个实体塑造为单个对象,并针对视图的使用和渲染进行优化

ViewModel包含在LabelFor、EditorFor、DisplayFor helpers视图中表示的字段 ViewModel可以使用数据注释或IDataErrorInfo具有特定的验证规则。 ViewModel可以具有来自不同数据模型或数据源的多个实体或对象。 更多参考: