用责任链模式写注册逻辑
来源:互联网 发布:vb开源游戏引擎 编辑:程序博客网 时间:2024/06/05 01:53
注册信息太多,要用很多个if…else…做控制,我觉得可以用责任链模式来写,将逻辑控制独立到单独的对象中,同时有变化产生时,修改控制类中的责任链即可
简单的业务场景,对用户名,密码,身份证号,验证码做验证
有对责任链模式不了解的可以看我之前的blog ——http://blog.csdn.net/tyronerenekton/article/details/52534730
见代码
public class RegisterMessageHelper { private IHander iHander; public RegisterMessageHelper(IHander iHander) { this.iHander = iHander; } public boolean MessageIsTrue(String ... params) { return iHander.MessageOK(params); }}
public abstract class IHander {
protected IHander next;protected void setNext(IHander iHander) { next = iHander;}public void printErrorMessage() {}protected abstract boolean MessageOK(String... params);
}
public class UserNameAndPasswordHandler extends IHander{ @Override protected boolean MessageOK(String ...params) { /** * 先对自己的逻辑做判断 */ System.out.println(params[0] + " " + params[1]); if(params != null && params.length >= 2 && params[0].length() >= 6 && params[1].length() >= 6){ //检查是否有下一个责任的负责对象 if(next != null) { return next.MessageOK(params); } return true; } return false; }}
public class IDCardHandler extends IHander{ @Override public boolean MessageOK(String... params) { System.out.println(params[2]); if(params != null && params.length >= 3 && params[2].equals("xxxx")) { if(next != null) { return next.MessageOK(params); } return true; } return false; }}
public class VerifyCodeHandler extends IHander { @Override public boolean MessageOK(String... params) { System.out.println(params[3]); if(params != null && params.length >= 4 && params[3].equals("123456")){ if(next != null) return next.MessageOK(params); return true; } return false; }}
public class Test { public static void main(String[] args) { IHander userNameAndPasswordHandler = new UserNameAndPasswordHandler(); IHander iDCardHandler = new IDCardHandler(); IHander verifyCodeHandler = new VerifyCodeHandler(); userNameAndPasswordHandler.setNext(iDCardHandler); iDCardHandler.setNext(verifyCodeHandler); RegisterMessageHelper registerMessageHelper = new RegisterMessageHelper(userNameAndPasswordHandler); String params[] = new String[] { "hms123", "123546", "xxx", "123456" }; System.out.println(registerMessageHelper.MessageIsTrue(params)); }}
阅读全文
3 0
- 用责任链模式写注册逻辑
- 写个责任链模式(混用观察者)
- 责任链模式(未完成)--- 用时再写
- 责任链模式
- 深入浅出责任链模式
- 责任链模式
- 责任链模式
- 深入浅出责任链模式
- 责任链模式(一)
- 责任链模式(二)
- 责任链模式(三)
- 责任链模式
- java责任链模式
- 责任链模式
- 责任链模式
- 责任链模式
- 责任链模式
- 责任链模式
- nginx的hash
- 闵维方、魏新与令计划家族的瓜葛
- Java四种线程池的使用
- 请求重定向与请求转发的区别
- android--as下,apk调试运行OK,在手机上安装apk却出现闪退的解决办法
- 用责任链模式写注册逻辑
- mybatis generator逆向工程生成一对多映射
- 超强、超详细Redis数据库入门教程
- 积分图像和积分直方图
- win10内置Ubuntu安装图形界面
- Java面试知识点总结
- UVA120StackOfFlapjacks
- Eclipse的使用
- POJ