前言
MVP模式是MVC模式在Android上的一种变体,要介绍MVP就得先介绍MVC。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些Controller的东西在里面。这对于开发与维护来说不太友好,耦合度大高了。把Activity的View和Controller抽离出来就变成了View和Presenter,这就是MVP模式。

让我们来用mvp写一个登录界面

一、Model层
1.定义Model接口
public interface ILoginModel {
void login(String account, String pwd, LoginListener listener);
}
2.实现ILoginModel ,用子线程睡眠3秒来模拟网络的请求过程
public class LoginModelImpl implements ILoginModel {
private final Handler handler = new Handler(Looper.getMainLooper());
@Override
public void login(String account, String pwd, LoginListener listener) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3_000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (TextUtils.equals(account, "lbj") && TextUtils.equals(pwd, "123")) {
handler.post(new Runnable() {
@Override
public void run() {
listener.onSuccess();
}
});
} else {
handler.post(new Runnable() {
@Override
public void run() {
listener.onFailed();
}
});
}
}
}).start()