android的mvp是什么呢?
Model:用于数据的增删改查等,也包括一些数据对象 ,主要用来处理一些业务操作。 View:用于界面的显示与用户操作的接收,在Android里面View通常就是Actvitiy,Fragment。 Presenter:是View跟Model的“中间人”,接收View的请求后,从Model获取数据交给View。
调用过程:view->Presenter->Model,如果model有返回值,就返回给view.
Model关键代码如下:
public void login(UserBean login) {
if (username != null && "gu".equals(username))
if (password != null && "123".equals(password))
status = true;
listener.loginStatus(status);
}
由此可见,model就是一个bean和处理一些逻辑业务的类,还有一个回调函数。用户名是gu,密码是:123。
view的关键代码如下:
private LoginPresenter loginPresenter;
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
loginPresenter.login();
}
});
由此可见,view是一个activity用于初值化控件和一些控件使用,并调用的是
Presenter类。
Presenter关键代码如下:
public class LoginPresenterImpl implements LoginPresenter, OnLoginListener{
private UserBiz userBiz;
private LoginView loginView;
public LoginPresenterImpl(LoginView loginView){
this.loginView = loginView;
userBiz = new UsrBizImpl(this);
}
@Override
public void login() {
UserBean login = new UserBean();
login.setUsername(loginView.getUsername());
login.setPassword(loginView.getPassword());
userBiz.login(login);
}
@Override
public void clear() {
loginView.clearPassword();
loginView.clearUsername();
}
@Override
public void loginStatus(boolean status) {
String msg;
if (status)
msg = "login succeed";
else
msg = "login failed";
loginView.showMsg(msg);
}
}
由此可见,
Presenter
是通过构造函数来初值化view和实例化bean来实现添加数据,用于接收view的数据和从model返回数据,是View跟Model的“中间人”。
想看例子的看客们:点击下载