一個應(yīng)用中一般情況下注冊,忘記密碼這些功能的校驗基本上是一樣的,使用現(xiàn)在流行的mvp設(shè)計模式,可以簡化校驗操作,將校驗操作統(tǒng)一寫在interface中,也可以更方便的維護(hù)應(yīng)用。
1.定義統(tǒng)一校驗接口:
public interface ICheckInfoData {
void getCheckInfo(String mobile,String editPhone,String password,String code,String check,final OnMessageResultListener listener);
}
實現(xiàn)校驗接口:
public class ICheckInfoImpl implements ICheckInfoData{
@Override
public void getCheckInfo(String mobile, String editPhone,String password, String code,String check, final OnMessageResultListener listener) {
if(TextUtils.isEmpty(mobile)){
listener.onMessageSuccess("請輸入手機(jī)號!");
return;
}
if(TextUtils.isEmpty(code))
{
listener.onMessageSuccess("請輸入驗證碼!");
return;
}
if(TextUtils.isEmpty(password)){
listener.onMessageSuccess("請輸入密碼!");
return;
}
if(password.length()<6){
listener.onMessageSuccess("密碼長度過短!");
return;}
if(!CheckUtils.isMobileNO(mobile)){
listener.onMessageSuccess("請輸入正確的手機(jī)號碼!");
return;}if(!code.equals(check)){
listener.onMessageSuccess("請輸入正確的驗證碼!");
return;}
listener.onMessageSuccess("ok");
}
2.實現(xiàn)view層的接口
public interface ICheckInfoView {
String getMoblie();
String getPassword();
String getCode();
String getEditPhone();
String getCheck();
<T>void onMessageSuccess(T t);
}
3.實現(xiàn)CheckInfoPresenter
public class CheckInfoPresenter {
private ICheckInfoData mICheckInfoData;
private ICheckInfoView mICheckInfoView;
public CheckInfoPresenter(ICheckInfoView checkView) {
this.mICheckInfoView = checkView;
mICheckInfoData = new ICheckInfoImpl();
}
public void getCheckInfoMessage() {
mICheckInfoData.getCheckInfo(mICheckInfoView.getMoblie(), mICheckInfoView.getEditPhone(), mICheckInfoView.getPassword(),
mICheckInfoView.getCode(), mICheckInfoView.getCheck(), new OnMessageResultListener() {
@Override
public <T> void onMessageSuccess(T t) {
mICheckInfoView.onMessageSuccess(t);
}
});
}
}
如此一來,就可以在需要校驗的地方實現(xiàn):
public class FindPsdActivity extends BaseActivity implements ICheckInfoView
方便了以后的維護(hù)