为什么"Set()"函数比修改公共变量更好?
Why is "Set()" function better than modifying public variable?
这个问题困扰了我一段时间:)
假设我们有一个变量——为什么编写Set函数比简单地修改变量的数据(并将变量设置为public而不是private)更好呢?
这种方式的编码更少,我看不到任何"安全"问题。
有时在设置变量时,您可能希望对给定的值执行其他操作,而不是立即将其放入类的变量中:例如,您可能想要验证它或更新另一个相关的值。
基本上,它让拥有该变量的类控制可以对它做什么,以及当它被更改时发生的一系列特定事件。
还需要提到的是,使用"set"方法并不总是更好的。盲目遵守模式可能会导致代码过于复杂。如果类只是充当简单(真的simple)数据容器,那么公共访问通常是可以接受的。例如,查看java.awt.Rectangle
或java.awt.Point
类。
这一切都与面向对象以及你在该原则中的严格程度有关。如果严格遵循所有准则,那么直接使用一个类中的方法和标识符,而不是另一个类。从技术上讲,没有人反对。
此讨论与静态-非静态讨论相同。这位(自称)大师发现这是一种亵渎,但你把你的电脑放在路上没有任何障碍,如果你把整个程序放在静态的。
相关文章:
- 如何更好地检查两个 char 变量是否在一组值中?
- 静态常量与常量局部变量,哪一个性能更好
- 重新定义要在函数中使用的静态变量 - 有没有更好的方法?
- 有没有更好的方法来命名管道`cv :: mat`变量
- 有没有更好的方法可以从子类访问父类的变量?
- 将中间变量用于三元运算符(或类似运算符)以获得更好的性能
- 在C++中设置变量的值之前检查变量是否更好
- 对成员类/对象变量使用指针更好吗
- 有没有更好的方法来通过 C/C++ 中的环境变量创建路径
- 把x-1计算成一个变量然后使用它更好吗
- 在高性能计算中更好的做法是:将数据结构传递到一个函数或一组变量中
- 我是否应该将 const 用于局部变量以获得更好的代码优化
- 对于c++中的单个静态变量,有没有比类更好的选择
- 为什么"Set()"函数比修改公共变量更好?
- 在 main 中初始化类的 "static const" 类型变量成员的更好方法
- 在函数调用中处理多个布尔变量的更好方法
- 是在单个头文件中定义全局(外部)变量更好,还是在它们各自的头文件中更好?
- 对于计算密集型函数,类函数参数是否比c++中的类变量更好?
- 有没有更好的方法来解读多个变量
- 哪个是更好的方法 - 将"常量引用"与"boost::<Class>shared_ptr"存储为成员变量