一个应用中一般情况下注册,忘记密码这些功能的校验基本上是一样的,使用现在流行的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
方便了以后的维护
网友评论