MVP架构Android代码经验实践

先来一位大神的博客: 鸿洋博客 ,里面讲MVP架构相关知识讲的很详细,不懂MVP架构的可以去看看,安卓这块CSDN中我很欣赏的博主之一,我也是参考着他的博客,然后通过实践做项目才有的目前的经验。
话不多说,先看看我是怎么把代码耦合性很高的类拆成MVP架构的,先上简单的例子来讲解:
这是一个简单的标签收藏的功能,不用架构来写代码大家应该是这样写如下:
先初始化initView():

然后setListener():


是吧,没用架构的时候,大家大多应该就这样实现的吧,这样实现,在功能方面没什么问题,但是我们说过了,代码要追求的是高内聚低耦合的效果,这样写显然耦合性是很高的,所以现在我们要把这段代码使用MVP架构的
模式来修改它,以达到解耦合的目的。
(1)View
下面我们先从MVP的V(View)开始进行。
看过鸿洋博客的,都知道,我们在写View接口的时候,注意三件事情:
1、你在界面层很获取到什么?显然是标签名:getEditText();X坐标:getX();Y坐标:getY();比例尺:getScale();
2、你在界面层操作之后结果,对应的反馈? 显示收藏成功信息: showCollectionSuccessMsg();显示收藏失败: showCollectionFailedMsg();
3、该操作过程中对应的友好交互: 藏完毕后,设置按钮不可点击:setFavBtnEnable()
这样就将View层的接口抽出来了,代码如下:
然后再让我们的Activity或者Fragment去实现这个接口,然后实现就可以了,直接上代码。




是不是感觉类瞬间清晰分明了很多,哈哈,这就是MVP架构的优点了,还有很多优点后面再说。

(2) Model
再来讲下MVP架构的,M(Model)层:
       这块就一个业务类方法,暂时没有用到实体类,当然有用到实体类时候,我会提醒大家,话不多说:

其中监听接口OnCollectionListener是一个回调接口,收藏成功后通知主界面显示收藏成功信息的。
(3)Presenter
    然后就是P层了(Presenter)
P层就是Model层和View层之间的桥梁的作用,是两个之间的纽带,这也是MVP能够解耦的关键的地方。
先上代码:
 

P类里面就一个方法collectionMark(),
然后成员变量就是界面层View接口类,Model层的业务类,然后在构造方法里面实现业务类就能调用业务类里面的方法了,然后界面层的获取,也能通过view接口来实现。这样就将model层和View层完全分离开,只通过桥梁P层来作为联系纽带,从而达到解耦合的目的。好了,相信大家已经初步了解并且可以使用MVP架构了,大家可以对比下架构前和架构后的代码,相信大家可以看出来MVP架构后的代码不光耦合性低,条例也清晰了很多。今天就先说这么多吧,下一篇文章,我将会用一个更复杂的例子来说说,如何使用MVP架构Android代码。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值