为了保证函数运行的正确性,在函数的开始一般要对参数的正确性进行判断,如果函数间相互进行调用的时候,可能会出现多次对同一个参数的正确性进行验证,出现代码冗余。
比如在Action的一个函数里面调用一个Service的方法,参数验证位置有三种情况:
[list]
[*]1、在Service的函数里面
[*]2、在Action里调用Service的方法前
[*]3、在两个函数里面都对参数进行验证(肯定会有代码冗余)
[/list]
如果一个函数要求参数不能为空或是空字符串,在函数的里面应该就是这样的:
在另一个函数里面调用到了上面的方法:
这样的话验证参数的代码就重复了。
个人认为,在Service层里面可以不进行参数的验证,假定参数都是正确的。而是在调用Service层的方法之前,先对要传入的值进行验证,正确了才能调用相应的方法。
[color=darkred][b]问题核心就是,是要在一个函数里面进行参数验证,还是在调用函数前对参数进行验证。[/b][/color]
大家平常怎么写的,相互参考下。
比如在Action的一个函数里面调用一个Service的方法,参数验证位置有三种情况:
[list]
[*]1、在Service的函数里面
[*]2、在Action里调用Service的方法前
[*]3、在两个函数里面都对参数进行验证(肯定会有代码冗余)
[/list]
如果一个函数要求参数不能为空或是空字符串,在函数的里面应该就是这样的:
public void doSomething(String foo) {
if (null == foo || "".equals(foo.trim())) {
return;
}
// some code
}
在另一个函数里面调用到了上面的方法:
public void doAnything(String foo) {
if (null == foo || "".equals(foo.trim())) {
return;
}
doSomething(foo);
// some code
}
这样的话验证参数的代码就重复了。
个人认为,在Service层里面可以不进行参数的验证,假定参数都是正确的。而是在调用Service层的方法之前,先对要传入的值进行验证,正确了才能调用相应的方法。
[color=darkred][b]问题核心就是,是要在一个函数里面进行参数验证,还是在调用函数前对参数进行验证。[/b][/color]
大家平常怎么写的,相互参考下。