Android MVP 架构

网上介绍MVP的很多,百度一下你就知道,至于为什么要用MVP,当然是由于它的优势了:

比如购物车界面,有很多请求网络的地方:获取购物车商品列表、购物车商品的删除、购物车商品的购买等等, 这么多网络请求,如果都写在一个Activity,而且还有大量逻辑判断,那这个Activity的行数~ 看着就让人头痛, 即便写了注释,维护起来也是比较麻烦的

MVP的使用,使Activity中的网络请求剥离出来 成为model、presenter,model只负责网络的请求、pesenter负责处理请求网络后的数据处理:加载中 成功 or 失败 取消加载;最后View进行界面的展示

这就涉及到MVP的缺点了,正所谓,金无足赤,人无完人,MVP既然有优点当然也有它的缺点了

MVP在实现代码简洁的同时,额外增加了大量的接口、类,不方便进行管理,于是Contract就登场了。

Contract 如其名,是一个契约,将Model、View、Presenter 进行约束管理,方便后期类的查找、维护。

(示例代码由开发项目中剥离到Demo中,登陆接口使用的是玩安卓的登陆API:)

Model接口 创建对应的联网请求的方法,将Presenter提交的字段放到联网请求中,发送给服务器

View 接口 创建在界面上显示加载中、取消加载以及登陆成功、失败的方法

请求服务器前 使用MainContract.View中的 mView.showLoading()方法,进行显示加载中;在成功失败的回调中,使用对应的方法,以及取消加载。

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智…

从MVP开发模式至今,其实已经过了好久;很多开发者也已经轻车熟路的运用到了项目中,本来犹豫要不要写这篇文章,后来发…

最近稍微了解了下MVP架构模式,这篇文章写得不错,转过来mark下:原博客原地址:

引言 目前Android开发比较流行的是MVP开发架构,与MVC不同的是把Activity、Fragment等页面…

納粹德國在 1942 年研發的超重型戰車, 延續動物園稱號的七號戰車—獅, 有 90噸的重獅與 76噸的輕獅二…

发表评论

电子邮件地址不会被公开。 必填项已用*标注