为了保证函数运行的正确性,在函数的开始一般要对参数的正确性进行判断,如果函数间相互进行调用的时候,可能会出现多次对同一个参数的正确性进行验证,出现代码冗余。
比如在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的验证操作 还有 网址、数字、身份证、日期等验证,都只需要如上一样添加属性即可,详细的请看...
使用Spectre对提取的寄生参数进行后仿验证** - **步骤**: - 将提取的寄生参数导入Spectre。 - 进行电路仿真,比较前仿和后仿的结果。 - **关键指标**: - **延迟时间**:衡量信号传递速度的关键指标。 - **...
在.NET框架中,尤其是使用VB.NET进行开发时,经常需要在父窗口和子窗口之间进行数据传递。这个“父窗口与子窗口的参数传递验证”的示例提供了如何有效解决这个问题的一种方法,它主要依赖于事件和委托。接下来,我们...
本文将深入解析如何利用FineReport中的参数控件进行取值与置数,以及这一过程在实际报表设计中的应用。 ### 参数控件取值与置数的概念 在报表设计中,参数控件主要用于收集用户输入或选择的数据,这些数据可以用于...
它通常涉及到对用户在应用程序中填写的文本字段进行检查,以确保输入符合预设的规则,例如非空、邮箱格式、电话号码格式等。本实例代码将向我们展示如何在Android应用中实现一个简单的字段验证功能。 首先,我们...
2. **标注**:在获得验证码图像后,我们需要手动或使用自动化工具对每个图像进行标注,即识别并标记出图像中的每一个字符。这一步通常采用如LabelImg等工具,将每个字符的位置和对应的文本信息记录下来,生成用于...
我们可以通过一个简单的实例来演示如何将参数验证逻辑实现在对应的 Action 方法中,并在没有通过验证的情况下将错误信息响应给客户端。 例如,我们定义了一个 Person 类作为被验证的数据类型,它的 Name、Gender 和...
在iReport设计报表时,有时候我们需要将主报表的数据传递给子报表,以便子报表能够根据这些参数进行定制化的数据查询和展示。这个过程涉及到的主要知识点是报表参数的传递,也就是所谓的"传参"。以下是对这个过程的...
应限制组件接收的参数类型和范围,对输入进行验证,避免代码注入攻击。 8. **测试与部署**:编写完成后,需要在不同的环境中测试COM组件,确保在不同版本的Windows和浏览器中都能正常工作。部署时,用户需要安装...
在服务器启动时,Servlet会被加载并初始化,处理完请求后,服务器会在适当的时候销毁Servlet实例。 2. **请求和响应** Servlet通过HttpServletRequest对象获取客户端的请求信息,如参数、头信息等;通过...
如果是整个RNC 参数修改,一定要进行跟踪测试,如果只是单个小区之间的参数修改,要对单小区验证。该参数是同时起作用与同频、异频、异系统的小区重选,因此,该值的设置应该整体考虑,一般情况下不建议设置为0,...
在定义具体Action方法的时候,对已经成功绑定的参数实施手工验证无疑是一种最为直接的编程方式,接下来我们通过一个简单的实例来演示如何将参数验证逻辑实现在对应的Action方法中,并在没有通过验证的情况下将错误...
为了安全起见,需要对用户输入进行适当的清理和验证,防止SQL注入等安全问题。如果查询结果显示用户名已存在,`checkname.php`会返回一个特定的标识或消息,例如"用户名已存在";反之,如果用户名可用,就返回...
rails_param Rails的参数验证和类型强制介绍如果您想直接在控制器内部验证一些参数,该库非常方便。 例如:您正在构建搜索动作,并且想要验证是否已设置sort参数,并且仅将其设置为desc或asc类的东西。重要的该库不...
在本文中,作者李柏椿和钟波对EM/MCEM算法在一般性多项分布参数估计问题中的应用进行了研究。多项分布是统计学中的一个基本概念,是二项分布的推广,用于描述在n次独立实验中,某事件发生的次数k的概率分布。在实际...
1、在登录的时候对password参数与时间戳拼接; 2、对账号参数切及时间戳的拼接; 3、将部分关键数据转数组后先进行MD5加密处理; 4、最终将前面数据全部拼接对数据使用AES下的CBC加密 5、得到password的参数之后使用...