MVVM模式学习
MVVM是MVC模式的变种,实现了逻辑与界面的分离。
1.MVVM结构
MVVM模式分为Model、View和ViewModel。
2.为什么会有MVVM模式
为了解决现实世界中的问题,我们将现实世界中的事物加以抽象,即得到了Model。
但Model无法与我们的用户进行交互,。所以, 我们需要创建一个界面, 该解开可以与用户输入设备进行交互,于是我们得到了View。
这样看起来似乎很完美,但实际编程时我们发现, Model中的属性往往不那么容易与View中的界面控件关联起来,。比如界面控件所需要的类型与模型中属性提供的类型不匹配、模型中的数据
需要经过一些额外的处理才能传给视图。于是我们需要一个Helper来处理这些工作。
起初我们把这个Helper放到了Model外的所有类中,比如View中。这样耦合性显然很高,当我们要进行界面移植,比如移植到手机端的时候就又要进行一次Helper的处理。
为了将View和Model剥离开来,实现View的可替换,我们有了MVC,然后就有了MVC的变种MVP、MVVM。
在现实开发中,我们的设计人员往往是不懂代码的,只管界面,MVVM实现了业务逻辑与界面的分离,可以让我们开发人员和设计人员更好的合作。
3.MVVM的优点
- 设计人员可以只设计UI,不用管代码如何实现。
- 可以先设计UI或者与开发同时设计。
- 可以实现界面与代码的分离,实现快速移植。
- 有助于我们区别并哪些是UI操作,哪些是业务操作,而不是将他们全混在CodeBehind中。
- 项目可测试更高,从而可以执行单元测试。