深入解析MVP怎么玩,接口抽取深入解析

MVP 全称:Model-View-Presenter ;MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。

MVC和MVP的区别?

作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。
在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。 在MVC模型里,更关注的Model的不变,而同时有多个对Model的不同显示,即View。所以,在MVC模型里,Model不依赖于View,但是View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。
虽然 MVC 中的 View 的确“可以”访问 Model,但是我们不建议在 View 中依赖 Model,而是要求尽可能把所有业务逻辑都放在 Controller 中处理,而 View 只和 Controller 交互。当然最好是把业务也抽成一个model。

具体怎么写呢?具体请看注释,没提出说明

我们需要写个ViewInterface,ModelInterface以及管理这这两个接口的Presenter类

1、ViewInterface这个是必须的:里面主要定义一些操作界面的方法、结果反馈的方法、UI隐藏的方法,具体方法按照需求划分抽取,主要由activity实现。

2、ModelInterface不是必须的如果业务单一就不需要,如果处理业务需要多个model每一个model都要实现这个公共接口,便于在Presenter中回调,主要由model层实现。

3、Presenter是最重要的是一个普通类,里面定义了一下常量和标志,声明了ViewInterface,ModelInterface两个接口和一个public内部回调接口CallBack。CallBacK主要以匿名接口在Presenter中实现,在实现的方法中可以用ViewInterface回调具体实现的activity的方法。

具体代码如下所示:

ViewInterface代码:

该接口负责定义对view层的所有操作。例如UI更新、view界面数据获取,网络请求成功信息展示、以及界面跳转等各种UI操作。主要供Presenter回调来修改界面,达到控制者的作用,具体方法参数视具体情况而定。

</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值