参数验证其实可以更简明一点
2012-07-18 21:10
267 查看
最近在尝试重构一个老系统的代码, 阅读过程中经常发现对方法参数值进行校验的逻辑. 它们看上去会是这样:
arg2 = new ....;
invoke(arg1,arg2);
if (arg3 <= 0 || arg3 > 10 ) {
...
[/code]
上面的写法其实问题不大, 但参数一多, 十多行都是, 我就有点看不下去了, 难道不能再简单明了一点吗?( 好吧, 我的代码洁癖又犯了:( )
其实可以写成这样的:
check(arg3).greaterThan(0).lessThanOrEqual(10).orComplain();
[/code]
嗯, 要是写成这样我就觉得舒坦了, 基于这个思路, 随手写了个实现, 取名叫Guards, 感兴趣的可以点击这里 查看更多范例.
if (arg1 == null) { throw new IllegalArgumentException("...");
}
if (arg2 == null) {
arg2 = new ....;
}
invoke(arg1,arg2);
if (arg3 <= 0 || arg3 > 10 ) {
throw new IllegalArgumentException("...");
}
...
[/code]
上面的写法其实问题不大, 但参数一多, 十多行都是, 我就有点看不下去了, 难道不能再简单明了一点吗?( 好吧, 我的代码洁癖又犯了:( )
其实可以写成这样的:
invoke(get(arg1).orComplain("..."),get(arg2).orDefault(new ...));
check(arg3).greaterThan(0).lessThanOrEqual(10).orComplain();
[/code]
嗯, 要是写成这样我就觉得舒坦了, 基于这个思路, 随手写了个实现, 取名叫Guards, 感兴趣的可以点击这里 查看更多范例.
相关文章推荐
- 项目管理其实可以简单一点——进入正轨(情绪有所下降)
- 其实我可以更快乐一点的!
- 项目管理其实可以简单一点——进入正轨(情绪有所下降)
- 项目管理其实可以简单一点——项目工期
- 项目管理其实可以简单一点——项目风险
- ExtJs--14--Ext.typeOf() 与 javascript中的typeof很相似,只是在类型上进行了一点简单的扩展,其实可以直接看源代码就可以看得懂的
- 项目管理其实可以简单一点——项目工期
- 项目管理其实可以简单一点——项目风险
- 项目管理其实可以简单一点——团队建设
- 项目管理其实可以简单一点——从头开始
- 动态SQL的执行,注:exec sp_executesql 其实可以实现参数查询和输出参数的
- 项目管理其实可以简单一点——团队建设
- 这是一个服务端自动验证框架,可以对JavaBean中的属性以及方法中参数列表进行自动验证
- 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。 该校验的过程:1、从卡号最后一位数字开始,逆
- 项目管理其实可以简单一点——任务分工
- 动态SQL的执行,注:exec sp_executesql 其实可以实现参数查询和输出参数的
- 项目管理其实可以简单一点——项目继续
- 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心, 因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。
- 项目管理其实可以简单一点——从头开始
- jquery.validate的ajax方式验证[可以一个控件下一次传递多个参数,已经成功通过验证]