MVC、MVP和MVVM学习

目录

  1. MVC
  2. MVP
  3. MVVM

记录个人对Android中三种架构的理解

MVC

Component Explantation
Model 负责业务逻辑和数据操作
View 界面,通常是XML
Controller 通常是ACtivity或者Fragment
优点 业务逻辑解耦、开发效率高
缺点 Controller代码量大、单元测试不容易做

MVP

Component Explantation
Model 负责业务逻辑和数据操作,只与Presenter通信
View 界面,通常是XML、Activity、Fragment
Presenter ViewModel之间所有通信都需通过Presenter
优点 ViewPresenter都可复用;代码可读性好;业务逻辑与UI完全隔离,便于测试
缺点 ViewPresenter强耦合、每层之间都需要大量接口用于通信,代码量增大

MVVM

感觉相比MVP最大不同就是每层之间通过观察者模式进行通信,不需要定义大量接口,以事件驱动代替。

Component Explantation
Model 负责业务逻辑和数据操作,抽象出Repository用于接收ViewModel请求并进行数据处理
View 纯界面显示,用户交互通知给ViewModel,通过观察ViewModel提供的被观察者,响应UI变化
ViewModel 大部分UI逻辑在这里,以数据驱动控制UI变化
优点 ViewViewModel松耦合,每层之前通信不需要定义大量接口,便于单元测试
缺点 每个UI Component都需要一个观察者,代码量增大