具有相同名称的Getter/Setter

Getter/Setter with same name

本文关键字:Getter Setter      更新时间:2023-10-16

我有一个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;
}

我的问题是,这个有名字吗?也许是作为一种模式或其他东西。

虽然这不是我的第一选择,如果我从头开始做事情,我不一定介意,但任何能让我读到它的建议(注意事项、建议、做和不做,以防它真的是一件事)都会很感激,以防这是一种有着令人讨厌的惊喜的模式(在某些情况下,这比扔两个彩车更复杂)。

如果有人想分享他们对它的看法,那当然是一个额外的奖励,但我很乐意提供进一步阅读的链接。

我相信这就是Objective-C setter/getter风格。例如,请参见此和此。

只要您熟悉C++重载,重载方法就不足为奇了。如果没有,那么我建议阅读更多关于过载的内容。

就我个人而言,由于我有Java背景,我喜欢使用setVariable和getVariable的名称。但同样,这完全是针对个人的。