UMVCL8——MVX 之 MVVM

MVVM

全称为模型(Model)—视图(View)—视图模型(ViewModel)
Model提供数据,View负责界面,ViewModel负责逻辑的处理
MVVM的由来是MVP(Model-View-Presenter)模式与WPF结合应用时发展演变过来的一种新型框架

MVVM和MVP的对比

image

什么是数据绑定

将一个用户界面元素(控件)的属性,绑定到一个类型(对象)实例上的某个属性的方法。
如果开发者有一个 MainViewMode​ 类型的实例,那么他就可以把 MainViewMode​ 的 "Lev"​ 属性绑定到一个UI中Text的 "Text"​ 属性上。
“绑定”了这2个属性之后,对 Text​ 的 Text​ 属性的更改将“传播”到 MainViewMode​ 的 Lev​ 属性,
而对 MainViewMode​ 的 Lev​ 属性的更改同样 会“传播”到 Text​ 的 Text​ 属性

image

MVVM在Unity中水土不服

  1. View对象始终由我们来书写,并没有UI配置文件(如WPF中的XAML)的存在
  2. 硬要在Unity中实现MVVM,需要写三模块,并且还要对V和VM进行数据绑定,工作量大,好处也不够明显

Unity的第三方MVVM框架

唐老狮的MVVM粗暴变式——MP

MVVM中的关键是V和VM的数据双向绑定,即改变V或者VM对方的属性,对方也会随之变化,一切对外的的处理都通过VM来处理了,
V只负责更新和显示。

image

那么我们尝试将他们合二为一,并且达到将界面和逻辑某种意义上的解耦即可。