是否可以在 setter 方法中编写验证逻辑?

2022-09-02 19:17:11

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


答案 1

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

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

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

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

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


答案 2

是的,您可以在分配值之前在 setter 属性中添加验证逻辑。实际上,如果可能将不需要的值发送到 setter,则必须执行此操作。