为什么"Set()"函数比修改公共变量更好?

Why is "Set()" function better than modifying public variable?

本文关键字:变量 更好 修改 Set 函数 为什么      更新时间:2023-10-16

这个问题困扰了我一段时间:)

假设我们有一个变量——为什么编写Set函数比简单地修改变量的数据(并将变量设置为public而不是private)更好呢?

这种方式的编码更少,我看不到任何"安全"问题。

有时在设置变量时,您可能希望对给定的值执行其他操作,而不是立即将其放入类的变量中:例如,您可能想要验证它或更新另一个相关的值。

基本上,它让拥有该变量的类控制可以对它做什么,以及当它被更改时发生的一系列特定事件。

还需要提到的是,使用"set"方法并不总是更好的。盲目遵守模式可能会导致代码过于复杂。如果类只是充当简单(真的simple)数据容器,那么公共访问通常是可以接受的。例如,查看java.awt.Rectanglejava.awt.Point类。

这一切都与面向对象以及你在该原则中的严格程度有关。如果严格遵循所有准则,那么直接使用一个类中的方法和标识符,而不是另一个类。从技术上讲,没有人反对。

此讨论与静态-非静态讨论相同。这位(自称)大师发现这是一种亵渎,但你把你的电脑放在路上没有任何障碍,如果你把整个程序放在静态的。