美文网首页
用mvp模式实现登录注册的统一校验

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

作者: 浪漫晨风 | 来源:发表于2016-11-21 15:57 被阅读148次

    一个应用中一般情况下注册,忘记密码这些功能的校验基本上是一样的,使用现在流行的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();    
    <T>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 <T> void onMessageSuccess(T t) {                        
    mICheckInfoView.onMessageSuccess(t);                 
       }               
     });   
     }
    }
    

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

    相关文章

      网友评论

          本文标题:用mvp模式实现登录注册的统一校验

          本文链接:https://www.haomeiwen.com/subject/mwyupttx.html