android中mvc,mvp,mvvm的实现




1.MVC


Model:数据模型,获取数据
View:XML布局和自定义VIEW
Controller:Activity

原理:
当view层发出一个用户事件,controller调用model层更新数据,model更新完数据后直接显示再UI上。
弊端:
1.controller既处理业务逻辑,又处理view,导致controller过于臃肿
2.view和model是相互可知的,这意味着两层之间存在耦合。





2.MVP


Model:数据模型,获取数据
View:XML布局和自定义VIEW和Activity
Pressenter:负责完成view与model之间的交互和业务逻辑

原理:
当view层发出一个用户事件,view通知pressenterl层,pressenter再通知model层,最后pressenter再将最终的结果返回给view层。

特点:
view与model完全解耦,pressenter处理逻辑,view只负责展示view
弊端:
需要创建大量的类和接口,略显麻烦






3.MVVM


Model:数据模型,获取数据
View:XML布局和自定义VIEW
ViewModel:相当于mvp的pressenter,将view和model联系起来

原理:
当view层发出一个用户事件,ViewModel通知model层更新数据,model数据更新后,viewmodel通知view更新,与mvp不同的是,view与viewmodel的联系是通过databinding实现的

特点:
Android中实现mvvm完全依赖于databinding
弊端:
mvvm中数据是双向绑定的,这样不利于代码重用,而且数据绑定使得bug很难被调试




GIitbut代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值