ごとけんです

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