是否可以在 setter 方法中编写验证逻辑?
2022-09-02 19:17:11
setter 方法是否仅用于在属性作为参数传递时设置属性的值?我们可以在将值分配给属性之前编写一些验证逻辑吗?
setter 方法是否仅用于在属性作为参数传递时设置属性的值?我们可以在将值分配给属性之前编写一些验证逻辑吗?
是的,验证逻辑绝对是可以接受的。
但应该注意的是,如果您有广泛的验证,您可能希望将其提取到特定的验证器服务。但是对于简单的验证,您可以安全地执行此操作。
使用getters和setters背后的整个想法是,没有人可以直接访问你的领域。如果您只想设置/获取值,则可以使它们 。public
相反,我们使用 setter 来验证传入的数据,并查看它是否符合我们设置的规则。
这个概念也被称为“封装”,它是面向对象编程的基石。
是的,您可以在分配值之前在 setter 属性中添加验证逻辑。实际上,如果可能将不需要的值发送到 setter,则必须执行此操作。