代替関数名が API をより明確にする場合、ゲッターとセッターの「getMyValue()」および「setMyValue()」パターンを放棄することは適切ですか?
たとえば、C++ に次のクラスがあるとします。
public class SomeClass {
private:
bool mIsVisible;
public:
void draw();
void erase();
}
次のように「mIsVisible」を取得/設定する関数を追加できます。
bool getVisible() { return mIsVisible; };
void setVisible(bool visible) {
if (!mIsVisible && visible) {
draw();
} else if (mIsVisible && !visible) {
erase();
}
mIsVisible = visible;
}
ただし、代わりに次の方法を使用することも同様に可能です。
bool isVisible() { return mIsVisible; };
void show() {
if (!mIsVisible) {
mIsVisible = true;
draw();
}
}
void hide() {
if (mIsVisible) {
mIsVisible = false;
erase();
}
}
簡単に言えば、単一の「setVisible(bool)」メソッドと、「show()」と「hide()」メソッドのペアのどちらが良いですか? 慣習はありますか、それとも純粋に主観的なものですか?