0

ゲッター/セッターの使用に関する保護されたメンバー変数に関する質問で、小さな議論が燃え上がりました。ゲッター/セッターが悪かどうかについてはすでに多くの疑問がありますが、私よりもはるかに評判の高い 2 人の別々の個人によって提起された、ゲッター/セッターに対する 1 つの特定の議論が私を襲いました。

1 人はゲッター/セッターがコードの脆弱性を 0.01% だけ軽減したと述べ、もう1 人は 10 行のコードを追加するとコードがより脆弱になると述べました。

これは、私が以前に読んだり、教えられたり、考えたり、経験したりしたことのほとんどに反しています。他の誰かがそれらのコメントに同意/反対しますか?

4

1 に答える 1

3

私はそれが異端に近いことを知っていますが、get/set メソッドは嫌いです。それらを嫌います。それらを書くことはほとんどありません。

一般に、クラスは、内部状態変数を直接かつ単純に読み取って変更するよりもはるかに高レベルの操作を提供するか、邪魔にならないようにして構造体のように振る舞う必要があります。

書いたとしても、クラス内で使うことはほとんどありません。それらの要点は、クライアントに影響を与えることなく、物事の内部表現を変更できるということです。クラス内で、気になるのは内部表現です!クラス内で独自のインターフェイスを使用してクラスで多くの操作を実行したい場合は、おそらくそこから抜け出すために戦っている 2 番目のクラスが存在します。

于 2010-10-15T20:34:18.330 に答える