Android之MVC、MVP、MVVM(Data Binding)

本文旨在记录最近总结的Android客户端架构,作为学习笔记,欢迎批评指正。


一、概述

MVC:Model - View - Controller

MVP: Model - View - Presenter

MVVC:Model - View - ViewModel

这里写图片描述


二、发展过程

MVC

  • Model:业务逻辑和实体模型;

  • View:布局文件;

  • Controller:Activity;

在Android中View对应的各种Layout布局文件,不像Web端那样强大,处理能力有限。因此,很多对UI的操作都在Activity(Controller)中进行,加上Activity本身的工作(派发事件,根据事件调用Model层数据),使得Controller的任务十分繁重,代码冗长复杂,不易维护。

为了使View和Controller的界限分明,又出现了MVP的设计模式。

MVP

  • Model:业务逻辑和实体模型;

  • View:布局文件、Activity;

  • Presenter:连接View和Model;

MVP不同于MVC的最重要一点:View和Model彻底分离;

MVP的出现时View和Model的耦合度降低,简化了Activity的工作。

Presenter和另外两层的交互是通过定义好的接口协议进行的,每个Presenter可能包含一个或者多个接口,使得View或Model改变的时候,Presenter不需要改变,代码复用性高。

我们可以使用测试用的View,对Presenter进行测试,方便了单元测试

MVP更适合快速迭代开发

MVVM

  • Model:业务逻辑和实体模型;

  • View:布局文件和Activity;

  • ViewModel:连接View和Model;

ViewModel通过Data Binding和View进行双向交互,每一方的变化都会在另一方体现出来。

Data Binding

Data Binding库不仅灵活而且广泛兼容- 它是一个support库,因此你可以在所有的Android平台最低能到Android 2.1(API等级7+)上使用它。目前,Data Binding还不成熟,学习可用。用兴趣的同学可参考这两篇文章:

完全掌握Android Data Binding

Data Binding(数据绑定)用户指南

还有两个MVP的例子:

https://github.com/hongyangAndroid/Android_Blog_Demos/

https://github.com/antoniolg/androidmvp

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值