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。具体怎么写呢?具体请看注释,没提出说明
我们需要写个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回调来修改界面,达到控制者的作用,具体方法参数视具体情况而定。
</