混合getter /setter和普通变量
Mixing getters/setters and normal variables
我正在编写一个C库的c++包装器,因此,需要使用getter/setter方法来调用原始的C函数。
class View {
public:
GR_COLOR getBackgroundColor();
void setBackgroundColor(GR_COLOR color);
GR_COLOR getBorderColor();
void setBorderColor(GR_COLOR color);
};
像这样将这种风格与普通变量混合在一起是否被认为是不好的?
class View {
public:
GR_COLOR getBackgroundColor();
void setBackgroundColor(GR_COLOR color);
GR_COLOR getBorderColor();
void setBorderColor(GR_COLOR color);
int someOtherVariable;
};
如果您为所有变量定义getter和setter,并将这些变量设为私有,那么将来对代码的更改将容易得多。这是OOP中getter/setter背后的原则之一。人们不会直接访问你的成员,你也不必担心他们如何使用它,因为你可以通过getter和setter来控制他们如何被使用。
它也将与库的其余部分保持一致。
然而,最终,这取决于你。如果我是你,我肯定会使用getter和setter
对某些变量使用getter和setter而对其他变量不使用,这并不被认为是糟糕的风格。但是,添加getter和setter ,然后为其他变量设置私有变量,将保护类的用户免受将来对类内部的更改。
我认为这是一种糟糕的风格。为什么不让你所有的变量私有,并有公共getter/setter每个?它更啰嗦,但(我认为)更符合OOP风格。
我个人并不认为这是件坏事。然而,当我看到类似的东西时,我通常认为setter提供了更多的处理和功能,而不仅仅是设置变量的值。ie。也许setBorderColor将设置保存颜色的变量并更新UI,而一个公共变量,比如updateDelay用于更新UI上的一些动态事物的计时器(我不知道,当场想不出任何东西),不需要任何额外的处理。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 将数组的地址分配给变量并删除
- 为"adjacent"变量赋值时出现问题
- enum是C++中的宏变量还是整数变量
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 如何在没有setter的情况下设置类内部类的成员变量?
- 公共变量是否比使用 getter 和 setter 更快?
- 如何为数组成员变量声明 getter/setter
- 如何在 setter 方法中设置 boost::optional 成员变量的值?
- 在功能静态变量上调用Setter一次
- 当argumentname和变量名相等时,c++类setter设置不同的变量
- c++setter编码约定.输入变量名称应该是什么
- 如何为指针类变量执行 setter 和 getter 函数
- 在 c++ 中确定具有相同变量名的成员的 setter 的行为
- 绑定C++成员变量:getter/setter 或原始指针
- 带有Setter或Boolean Getter的变量
- 混合getter /setter和普通变量
- 为什么我不能在c++中访问我的私有变量和getter和setter消息
- 如何为类成员变量编写setter