MVC(Model-View-Controller)
模型–视图–控制器模式,该模式用于应用程序的分层开发
- Model(模型):存储数据的对象。带有逻辑,在数据变化时更新控制器
- View(视图):数据的可视化
- Controller(控制器):控制器作用与模型和视图上。控制数据流向模型对象,在数据变化时更新视图。使视图与模型分离开
MVVM(Model-View-ViewModel)
模型–视图–视图模型模式。是MVC的改进版
- Model:代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑
- View:代表UI组件,负责将数据模型转化成UI展示出来
- ViewModel:是一个同步View和Model的对象。不经过后台直接改变视图或模型中的数据,与Model之间的交互是双向的。
区别
MVC操作方式:用户在视图中操作,控制器判断业务逻辑,数据更新后,再显示在视图中
MVVM操作:“数据与数据模型的双向绑定”,但通过ViewModel进行交互。当视图数据发生改变时数据源中也会随之改变,数据源变化也会立即反应到视图中。
MVVM的优点
- 低耦合:视图可以独立于Model变化,一个ViewModel可以绑到不同的View上
- 可重用性:可把某些视图逻辑放在一个ViewModel中
- 独立开发:设计人员专注于页面设计,开发人员专注于业务逻辑和数据开发
- 可测试:针对ViewModel来写