MVC、MVP、MVVM
使用这三种结构目的是分离关注,使得UI变换更容易(从Winform变为Webform),使得UI更容易进行单元测试
MVC
- View接受用户的交互请求
- View将请求转交给Controller
- Controller操作Model进行数据更新
- 数据更新之后,Model通知View数据变化
- View显示更新后的数据
MVP
- View接受用户的交互请求
- View将请求转交给Presenter
- Presenter操作Model进行数据库更新
- 数据更新后,Model通知Presenter数据变化
- Presenter更新Vive的数据
Presenter将Model的变化返回给View,和MVC不同的是Presenter会反作用于View,不像Controller只会被动接受View的指挥。正常情况下,发现可以抽象View,暴露属性和事件,然后Presenter引用View的抽象。这样可以很容易的构造View的Mock(仿制品)对象,提高可单元测试性
MVVM
一些DataBinding、多了一个ViewModel等。