学习笔记:当前主流架构 MVC+MVP+MVVM

MVC+MVP+MVVM

MVC全名Model View Controller
模型(model) - 视图 (view) - 控制器( controller)
M是指业务模型,V是指用户界面,C则是控制器
其中View层其实就是用户的UI界面,用于向用户展示数据一级接受用户的输入;
Model层就是JavaBean实体类,用于保存实例数据;
Controller控制器用于更新UI界面和数据实例。

MVC项目结构
在这里插入图片描述

MVP是一种经典的模式
M是Model,V是View,P则是Presenter (Model和View之间的桥梁)

MVP模式的核心思想:
把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类还是原来的Model类。

MVP作用
1、分离视图逻辑和业务逻辑,降低耦合
2、Activity只处理生命周期的任务,代码简洁
3、视图逻辑和业务逻辑分别抽象到View和Presenter中,提高阅读性
4、Presenter被抽象成接口,可以有多种具体的实现
5、业务逻辑在Presenter中,避免后台线程引用Activity导致内存泄漏

MVP项目结构
在这里插入图片描述
总结;
1、View和Presenter都是先抽象成接口,再对其进行实现;
2、在View中实例化Presenter,View即可调用其业务方法;
3、在View中实例化Presenter后,调用Presenter的attachView(T view)方法,将View与其绑定,Presenter即可调用UI方法。

MVVM
M是Model,V是View,VM是ViewModel(将前面两者联系在一起)

Android Data Binding
2015年I/O大会上谷歌介绍了一个非常NB的工具,该工具可以将View和一个对象的field绑定,当field更新的时候,framework将收到通知,然后View自动更新。
Data Binding官方原生支持MVVM模型可以让我们在不改变现有代码的框架下,非常容易地使用这些新特性。

Data Binding使用
1、build.gradle配置
2、布局文件最外层增加标签;增加标签,其中添加,指明对应的ViewModel类
在这里插入图片描述
3、field要是ObservableField,才能被监听,framework才能收到通知,然后View才能自动更新
在这里插入图片描述
4、@BindingAdapter 定义方法
在这里插入图片描述
在这里插入图片描述
MVVM模式中,一个ViewModel和一个View匹配,它没有MVP中的IView接口,而是完全和View绑定,所有View中的修改变化,都会自动更新到ViewModel中,同时ViewModel的任何变化也会自动同步到View上显示。

MVVM项目结构
在这里插入图片描述
1、View中获取binding,并setViewModel
2、可以直接通过binding使用界面元素,不再需要findViewById
在这里插入图片描述
3、viewModel中通过更新ObservableField数据来更新界面,通过监听通知View其它变化
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值