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的“中間人”。
想看例子的看客們:點選下載下傳