为了保证函数运行的正确性,在函数的开始一般要对参数的正确性进行判断,如果函数间相互进行调用的时候,可能会出现多次对同一个参数的正确性进行验证,出现代码冗余。
比如在Action的一个函数里面调用一个Service的方法,参数验证位置有三种情况:
- 1、在Service的函数里面
- 2、在Action里调用Service的方法前
- 3、在两个函数里面都对参数进行验证(肯定会有代码冗余)
如果一个函数要求参数不能为空或是空字符串,在函数的里面应该就是这样的:
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层的方法之前,先对要传入的值进行验证,正确了才能调用相应的方法。
问题核心就是,是要在一个函数里面进行参数验证,还是在调用函数前对参数进行验证。
大家平常怎么写的,相互参考下。
分享到:
相关推荐
我们在Model中处理数据的时候会一次传入很多参数,这时候可能需要对参数进行判断,是不是少参数了,参数的格式是否正确,如果每次都一大堆if判断的话会很麻烦,以前用过CI,它里面有对form表单提交的数据进行验证的...
我们在Model中处理数据的时候会一次传入很多参数,这时候可能需要对参数进行判断,是不是少参数了,参数的格式是否正确,如果每次都一大堆if判断的话会很麻烦,以前用过CI,它里面有对form表单提交的数据进行验证的...
如验证input或textbox中输入的时候email只需: 在input或textbox中加入属性ValidDataForEmail='default'即刻实现email的验证操作 还有 网址、数字、身份证、日期等验证,都只需要如上一样添加属性即可,详细的请看...
验证控件须对每个控件的元素进行设置且会对页面整体的布局带来影响,占据着页面布局空间的位置,综合考虑及项目整体风格的统一等多种因素中,总得有个折中的考虑。ChkInputs.js应运而生,使用它不需要编写多少代码,...
如果是整个RNC 参数修改,一定要进行跟踪测试,如果只是单个小区之间的参数修改,要对单小区验证。该参数是同时起作用与同频、异频、异系统的小区重选,因此,该值的设置应该整体考虑,一般情况下不建议设置为0,...
在定义具体Action方法的时候,对已经成功绑定的参数实施手工验证无疑是一种最为直接的编程方式,接下来我们通过一个简单的实例来演示如何将参数验证逻辑实现在对应的Action方法中,并在没有通过验证的情况下将错误...
python是不带静态检查的动态语言,有时候需要在调用函数时保证参数合法。检查参数合法性是一个显著的切面场景,各个函数都可能有这个需求。但另一方面,参数合法性是不是应该由调用方来保证比较好也是一个需要结合...
rails_param Rails的参数验证和类型强制介绍如果您想直接在控制器内部验证一些参数,该库非常方便。 例如:您正在构建搜索动作,并且想要验证是否已设置sort参数,并且仅将其设置为desc或asc类的东西。重要的该库不...
1、在登录的时候对password参数与时间戳拼接; 2、对账号参数切及时间戳的拼接; 3、将部分关键数据转数组后先进行MD5加密处理; 4、最终将前面数据全部拼接对数据使用AES下的CBC加密 5、得到password的参数之后使用...
完整性:能够对传入数据进行验证,防止篡改。 一、签名参数sign生成的方法 第1步: 将所有参数(注意是所有参数),除去sign本身,以及值是空的参数,按参数名字母升序排序。 第2步: 然后把排序后的
TP 提供了好几种参数验证的方式,比如验证器,独立验证,又或者在继承 Controller 基类的情况下使用 validate 方法。相比而言,验证器还是最佳选择。一个控制器有多个方法,也就表示有多个请求,也就表示有多个场景...
我们在做API开发的时候,我们会接受客户端传来的参数,大家都知道这个参数是不可信的,我们后端开发人员必须对这个参数进行验证。我在之前的开发中只是知道tp5的验证器,并不知道他的用途,因为之前的开发验证,往往...
(1)在函数声明或定义时,直接对参数赋值。这就是默认参数; (2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。 注意: (1)默认参数只可在函数声明中设定一次。只有在没有函数声明时,才可以在...
设计思路是在需要获取用户信息的GET请求上添加注解,然后在调用的时候判断是否包含此注解,然后做处理流程。 每次请求包含2种情况: 1.不需要获取用户信息,直接跳转到指定视图; 2.需要获取用户信息,此处分2种情况...
验证参数的设计 onEmptyText: 当输入内容为空的时候显示文本 onEmptyClass: 当输入内容为空的时候显示样式 onSuccessText: 当验证成功的时候显示的文本 onSuccessClass: 当验证成功的时候显示的样式 on
设计思路是在需要获取用户信息的GET请求上添加注解,然后在调用的时候判断是否包含此注解,然后做处理流程。 每次请求包含2种情况: 1.不需要获取用户信息,直接跳转到指定视图; 2.需要获取用户信息,此处分2种情况...
登录系统验证码代码
例如,用户A和用户B属于同一角色,拥有相同的权限等级,他们能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),...
CredsLeaker v4.x对@ApSecDev表示极大的欢迎,他使该项目更上一层楼!荣誉! 此脚本用于显示Powershell凭据框,要求用户提供凭据。 但是,这非常引人注目。 现在是时候利用Windows安全性弹出窗口了!特征AD域身份...