当前位置: 首页 > 面试题库 >

我可以在setter方法中编写验证逻辑吗?

鲁华茂
2023-03-14
问题内容

setter方法是否仅用于设置作为参数传递的属性值?我们可以在将值分配给属性之前编写一些验证逻辑吗?


问题答案:

是的,验证逻辑绝对可以接受。

但是应注意,如果您具有广泛的验证,则可能希望将其提取到特定的验证器服务。但是对于简单的验证,您可以放心地执行此操作。

使用getters和setters的整个想法是让没有人可以直接访问您的字段。如果您只想设置/获取值,则可以设置它们public

相反,我们使用设置器来验证传入的数据,并查看其是否符合我们设置的规则。

这个概念也称为“封装”,它是面向对象编程的基石。



 类似资料:
  • 我已经用LDAP用户联盟配置了KeyClope。当用户想要登录到应用程序时,他会被重定向到KeyClope登录页面,输入uid/pwd,并使用LDAP绑定进行身份验证。 这还不足以满足我的需求,因为我想实现一些自定义身份验证逻辑,例如: 我如何将自己的身份验证逻辑包含到KeyClope中?

  • 在本节中,您将验证电影控制器生成的编辑方法(Edit action methods)和视图。但是首先将修改点代码,使得发布日期属性(ReleaseDate)看上去更好。打开Models \ Movie.cs文件,并添加高亮行如下所示: using System; using System.ComponentModel.DataAnnotations; using System.Data.E

  • 我明白验证在应用程序的几个层中都是必需的。但是,如果要在所有层中实施的验证都是相同的(大多数情况下都是这样),那么使用一个公共的验证框架是有意义的。这是Hibernate验证器的目标之一。 那么,哪条路走得更好呢?

  • 如何使我的setter方法检查输入是否为数字?这是为了上课练习。我只是想弄明白为什么/怎么做。我不知道为什么,但它必须是字符串年,我需要确保只能使用一个数字。 例如,我有:

  • 问题内容: 我发现很多以下形式的html输入模式,这是电话号码: 我想创建一个自定义指令,无论该指令适用于哪里,它都会告诉Angular应用所有这三个规则,例如: 然后,我指令中的代码将找到并调用一个名为的函数,在该函数中我将看到类似以下内容的内容: 清单1: 我宁愿使用上述方法而不是为这些规则重写代码,例如: 清单2: 我不想取消所有基于属性的指令,但最好创建一个“宏”指令,该指令将调用我的清单

  • 给出静态编程语言中的编译错误(意外标记(使用';'分隔同一行上的表达式))