这是一个关于MVC、MVP、MVVM三种软件架构模式的笔记。
MVC
简单的来说,最基本的定义如下:
- M:Model层,数据模型。
- V:View层,界面。
- C:Controller层,逻辑。
将数据在界面上展示出来,就是一个最简单的应用场景。MVC的主要特点:M和V可以直接通信,通常是单向的。
MVP
和MVC最大的区别是,首先,中间层的名字用Controller变成Presenter,这里简称为P层,P层和V层、P层和M层是可以双向通信的,但是V和M彼此再也不直接来电了。
MVVM
MVVM的理解可以在MVP上更进一层,P层被一个叫ViewModel层的中间层取代。View层和ViewModel层从双向通信变成双向绑定。
MVVM实践
我始终认为,架构啊模式啊是一种思想,严格抠字眼意义不大。其实熟悉常用的设计模式,那么MVC和MVP并不难理解,而MVVM,由于在最近一次Android大会中,Google推出了Data Binding框架,这里打算按照相关教程,跑跑例子。
简单的例子
Model层
Model层用一个User类代表:
View层
View层用一个布局文件activity_main.xml表示:
我个人认为data元素就相当于接口,View层则布局在
data可以这么写:
也可以这么写:
在布局中,就可以调用变量:
VM层
具体的代码如下:
这样就实现了绑定。基本完成了一个MVVM实例。MVVM其实也有争论,关于它的不同见解也可以见参考中所列的文章。
Google出的Databinding框架还有很多高阶的使用方法,未完待续,慢慢填坑…
参考: