前言 :
Android Mvp 模式是现在常用的设计模式,将视图和业务逻辑解耦,分为Model-View-Presenter三个部分。
1.M 层 为数据模型 做一些数据相关的处理
2.P 层 控制View 层 为UI 交互的发起者 接受M层的反馈 然后对 View层的控制
3.V 层 接受P层的控制改变UI
今天我们要讲的是一个MVP的一个库 Mosby 他能更好的实现MVP,让实现MVP更加的快捷,方便更加清晰的搭建MVP。
开源地址:https://github.com/sockeqwe/mosby
官方介绍:http://hannesdorfmann.com/mosby/mvp/
依赖
implementation 'com.hannesdorfmann.mosby:mvp:2.0.1'
implementation 'com.hannesdorfmann.mosby:viewstate:2.0.1'
程序实现
使用Mosby 编写一个应用程序,界面一个Button 一个EditView 一个TextView
- 输入框输入电话号码
- 点击按钮,请求接口查血电话号码的归属地
- 显示电话号码的归属地
使用到的技术
- Mosby
- RxJava
- OkHttp
1. Model 数据模型层
定义从服务器返回的数据 Bean
Bean数据
/**
* resultcode : 200
* reason : Return Successd!
* result : {"province":"四川","city":"成都","areacode":"028","zip":"610000","company":"移动","card":""}
* error_code : 0
*/
生成实体类,通过工具生成。
package com.hzy.phone.model;
public class PhoneInfo {
/**
* resultcode : 200
* reason : Return Successd!
* result : {"province":"四川","city":"成都","areacode":"028","zip":"610000","company":"移动","card":""}
* error_code : 0
*/
private int resultcode;
private String reason;
private ResultBean result;
private int error_code;
public int getResultcode() {
return resultcode;
}
public void setResultcode(int resultcode) {
this.resultcode = resultcode;
}
public String getReason() {
return reason;
}
public void setReas