android面试学习-学到哪里记到哪里(四)

173 阅读1分钟

MVC、MVP、MVVM

使用这三种结构目的是分离关注,使得UI变换更容易(从Winform变为Webform),使得UI更容易进行单元测试

MVC

  1. View接受用户的交互请求
  2. View将请求转交给Controller
  3. Controller操作Model进行数据更新
  4. 数据更新之后,Model通知View数据变化
  5. View显示更新后的数据

MVP

  1. View接受用户的交互请求
  2. View将请求转交给Presenter
  3. Presenter操作Model进行数据库更新
  4. 数据更新后,Model通知Presenter数据变化
  5. Presenter更新Vive的数据

Presenter将Model的变化返回给View,和MVC不同的是Presenter会反作用于View,不像Controller只会被动接受View的指挥。正常情况下,发现可以抽象View,暴露属性和事件,然后Presenter引用View的抽象。这样可以很容易的构造View的Mock(仿制品)对象,提高可单元测试性

MVVM

一些DataBinding、多了一个ViewModel等。