IT流行语:程序=算法+数据结构。还有一句话,程序 = 输入数据 -> 数据处理 -> 输出数据。
如果以编程语言理解这句话,算法是方法,数据结构就是变量的组织形式,那么这句话可以理解为:程序 = 方法 + 变量。变量的组织形式是数据结构,不同的组织形式占用不同的内存存储空间和影响方法使用数据的效率。方法所使用的算法不同,执行的效率不同。程序员的追求是,采用最佳的数据结构组织变量,采用最佳的算法构成方法,得出期望的正确的输出结果。
MVVM是Model-View-ViewModel的缩写,它旨在UI开发中分离解耦视图和业务逻辑,最终达到不动业务逻辑的前提下,美化甚至更换视图。
控制台程序,没有一个用户可以观测程序运行状况,控制程序运行的接口,后台的变量赋值和方法调用都是以黑盒形式运行,它就像一个只有ViewModel和Model的后台应用程序。UI开发增加View层,通过数据绑定,可以观测后台变量的值,为后台变量赋值;通过命令,用户可以通过鼠标和键盘操作View,去触发后台调用执行方法;通过消息可以让后台影响View的视图效果。最终利用MVVM,可以观测后台程序的执行情况,有机会控制后台的执行流程,后台也可以改变视图效果展示给用户。
MVVM的优点如下:
- 低耦合:视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
- 可重用性:可以把一些视图逻辑放在一个ViewModel里面,让很多View重用这段视图逻辑。
- 独立开发:开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xml代码。
- 可测试:界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。
- 后台代码不掺杂UI元素,视图层不包含业务逻辑
使用MVVM思想开发的应用程序一般会有4个文件夹,分别是Views,ViewModels,Models,Services。物理目录也反映了分层解耦的思想。
标签:浅谈,思想,ViewModel,视图,MVVM,后台,Model,View From: https://www.cnblogs.com/LiuwayLi/p/16593920.html