ごとけんです In message "[ruby-list:19957] Re: メソッド名の制限?" on 99/12/28, "Hideaki Takata" <hideakit / d3.dion.ne.jp> writes: >ええっと、僕が聞きたかったのは逆の話で、 >@zairyouとか@tejunとかみたいなフィールドを扱うように見せかけた >メソッド呼び出しがしたいということなんです。 あえてそうしたい理由はいまひとつ分かりませんが、ぼくは結構 foo.attr[:hoge] = x みたいなのを使っているので、それとの区別を付けられると分かり にくくなる気はします。なんとなく。 >要するに、アクセスメソッドを使って、関連する作業を全部ラップしているけ >ど >使っている人はフィールドを扱っているような気分で扱える「プロパティ」。 ぼくはそう見えるのはそう作るのが好きです。そのまま作れないと きはなんとかごまかすけど ^^;; ># Foo#bar=メソッド と Foo#barメソッドを同時に実装するのって、 ># たいていそういう目的じゃあないかなぁ ># set_barとget_barのような隠蔽機能があるけど、変数みたいな味にする甘味 >料。 でも単に変数として扱うなら、実際に変数参照と代入をするために、 class Foo; attr :bar, true; end としますよね。とすると、@zairyou というオブジェクトを返すの は、それなりに理にかなっているのではないかしら。こうすれば、 zairyou という属性もオブジェクトになるので、責任の所在もその オブジェクトに集約されて随分と分かりやすいと思うのですが、ど うですか。既存のクラスに足りないものは @zairyou の特異メソッ ドとして再定義すれば良いですし。 -- gotoken