Getter/Setter 同名
Getter/Setter with same name
我有一个 API 我需要在扩展它时松散地模拟(所以没有改变约定),我必须做的一件事就是提供 setter/getter 之类的使用单名方法访问一些私有成员,一次用于设置,一次用于通过签名更改。
看起来像这样
class MyClass{
float m_t1;
float m_t2;
public:
const float t1();
const float t2();
void t1(float);
void t2(float);
};
MyClass::MyClass(){
m_t1 = 0.0;
m_t2 = 0.0;
}
const float MyClass::t1(){
return m_t1;
}
const float MyClass::t2(){
return m_t2;
}
void MyClass::t1(float t_val){
m_t1 = t_val;
}
void MyClass::t2(float t_val){
m_t2 = t_val;
}
我的问题是,这个有名字吗?也许作为一种模式或其他东西。
虽然如果我是从头开始做事,这不是我的第一选择,但我不一定介意,但是任何让我能够阅读它的指示(注意事项、建议、做和不做,以防它实际上是一个thing) 将不胜感激,以防万一它是一个在某个地方出现令人讨厌的惊喜的模式(在这种情况下比仅仅扔两个浮点数更复杂)。
如果有人想分享他们对它的看法,那当然是一种奖励,但我很乐意提供进一步阅读的链接。
我认为是Objective-Csetter/getter风格。例如,参见 this and this。
只要您熟悉 C++ 重载,重载方法就不足为奇了。如果没有,那么我建议阅读更多关于重载的内容。
就个人而言,因为我来自 Java 背景,所以我喜欢使用 setVariable 和 getVariable 名称。但同样,这完全是个人的。
我有一个 API 我需要在扩展它时松散地模拟(所以没有改变约定),我必须做的一件事就是提供 setter/getter 之类的使用单名方法访问一些私有成员,一次用于设置,一次用于通过签名更改。
看起来像这样
class MyClass{
float m_t1;
float m_t2;
public:
const float t1();
const float t2();
void t1(float);
void t2(float);
};
MyClass::MyClass(){
m_t1 = 0.0;
m_t2 = 0.0;
}
const float MyClass::t1(){
return m_t1;
}
const float MyClass::t2(){
return m_t2;
}
void MyClass::t1(float t_val){
m_t1 = t_val;
}
void MyClass::t2(float t_val){
m_t2 = t_val;
}
我的问题是,这个有名字吗?也许作为一种模式或其他东西。
虽然如果我是从头开始做事,这不是我的第一选择,但我不一定介意,但是任何让我能够阅读它的指示(注意事项、建议、做和不做,以防它实际上是一个thing) 将不胜感激,以防万一它是一个在某个地方出现令人讨厌的惊喜的模式(在这种情况下比仅仅扔两个浮点数更复杂)。
如果有人想分享他们对它的看法,那当然是一种奖励,但我很乐意提供进一步阅读的链接。
我认为是Objective-Csetter/getter风格。例如,参见 this and this。
只要您熟悉 C++ 重载,重载方法就不足为奇了。如果没有,那么我建议阅读更多关于重载的内容。
就个人而言,因为我来自 Java 背景,所以我喜欢使用 setVariable 和 getVariable 名称。但同样,这完全是个人的。