用mvp模式实现登录注册的统一校验

一个应用中一般情况下注册,忘记密码这些功能的校验基本上是一样的,使用现在流行的mvp设计模式,可以简化校验操作,将校验操作统一写在interface中,也可以更方便的维护应用。

1.定义统一校验接口:

public interface ICheckInfoData {    
void getCheckInfo(String mobile,String editPhone,String password,String code,String check,final OnMessageResultListener listener);
}

实现校验接口:

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("请输入手机号!");        
     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("请输入正确的手机号码!");    
return;}if(!code.equals(check)){    
listener.onMessageSuccess("请输入正确的验证码!");  
  return;}
listener.onMessageSuccess("ok");

}

2.实现view层的接口

public interface ICheckInfoView {    
String getMoblie();   
 String getPassword();    
String getCode();    
String getEditPhone();    
String getCheck();    
void onMessageSuccess(T t);
}

3.实现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  void onMessageSuccess(T t) {                        
mICheckInfoView.onMessageSuccess(t);                 
   }               
 });   
 }
}

如此一来,就可以在需要校验的地方实现:
public class FindPsdActivity extends BaseActivity implements ICheckInfoView
方便了以后的维护

你可能感兴趣的:(用mvp模式实现登录注册的统一校验)