MVP模式在Android中的应用实例

时间:2022-09-27 21:11:53

一、什么是MVP
Model是模型,指的是数据源层,包含实体类或者数据接口,远程服务器API
View是视图,可以是一个Activity或者其他View
Presenter主导器,负责从Model获取数据提供给View,从View获取数据提供给Model修改,还负责后台任务(大概指的是业务逻辑或者Service,其他线程任务吧)

二、为什么要使用MVP
绝大多数Android程序使用View-Model架构,这样做有个缺点,就是ViewModel之间错综交互,修改一处则会牵动其他地方,导致维护性和拓展性极差,不符合Kiss原则。
MVP模式在Android中的应用实例

如果使用MVP,则好处之一是ViewModel(Data)之间界限分明,功能明确,对象变得小了,更容易测是。View在请求数据的时候甚至不需要使用回调,避免回调地狱。
MVP模式在Android中的应用实例
好处之二是处理configuration改变或者发生out-of-memory事件的情况下。

三、例子
实现的功能图片:
MVP模式在Android中的应用实例

首先,创建几个包
MVP模式在Android中的应用实例
注意bean表示实体类,model要用的,单独分开。
接着,创建类和接口
MVP模式在Android中的应用实例
Presenter一方面要与view交互,一方面要与model交互,因此需要两个interface
然后,分析各自要包含的内容。
一从presenter开始,它需要两个interface的引用,还需要处理事务,因此它的成员有
MVP模式在Android中的应用实例
二modelinterface的内容。因为要获取实体,并且要修改实体,所以它的内容如下
MVP模式在Android中的应用实例

三viewinterface的内容。因为用户交互(用户输入、点击等)会产生数据,动作、结果,数据要通过presentermodel,动作要产生结果。即用户输入的namepassword要给model,用户点击login有成败的结果,用户点击clear有结果要展示,所以它的内容有
MVP模式在Android中的应用实例
四、三个interface的实现。这个很容易,注意viewinterface的实现在activity上。

最后在activity中进行调用,注意它持有presenter的引用。