いくつかの属性を読み込み専用にするか、書き込み可能で読みやすいようにしたいのですが、属性を書き込み可能にして読み込めないようにしたい場合は想像できます。いつattr_writerを使用しますか?
場合によっては、一部の属性を読み込み、変更できないことがあります。あなたがAnimal
クラスを持っているし、名前、年齢、色でそれを初期化したい場合たとえば、あなたは
attr_accessor :age, :color
を書くことができ、名前は「doesnのため、名前のために
attr_reader :name
を持っていますt変化。猫は年を取ったり色を変えたりすることができますが、一度割り当てられた名前は変更しないでください。
一方、attr_writer
(attr_accessor
またはattr_reader
ではなく)が必要なシナリオ(フォームパスワード以外)を合理化することはできません。どんな状況下で何かを書こうと思っていますが、それを読んでみたくないですか? attr_writer
はどんな種類のシナリオや状況が必要ですか?
他のプログラミング言語でもシナリオを考えることができますが、それは歓迎しますが、私の直接の対象指向知識の範囲はRuby内です。
自分でゲッターを提供していた場合、私は 'attr_writer'を使用します。 – Stefan
多分少し工夫しましたが、getterのない 'attr_writer'のために、私は[Bulls and Cows]のRuby版(https://en.wikipedia.org/wiki/Bulls_and_Cows)を想像することができました。ゲームオブジェクトは、あるプレーヤーが 'game.code ='を通してコードを(秘密に)設定することを許しますが、相手が 'game.code 'を通して簡単に入手することを許しません。 – Stefan