From: Kenichi Komiya Date: 2001-07-26T21:45:18+09:00 Subject: [ruby-dev:14119] Re: Is private instance variable really needed? 小宮です。 From: matz@ruby-lang.org (Yukihiro Matsumoto) Subject: [ruby-dev:14110] Re: Is private instance variable really needed? Date: Thu, 26 Jul 2001 14:04:52 +0900 > まつもと ゆきひろです > > |> # 現在のRubyはベタベタの古いモデルなんですが ^^;;; > | > |Rubyの設計思想は、クライアントに対しては開じていて、サブクラスに > |対してはオープン、というものだと信じていました。 > > それが「ベタベタの古いモデル」です。ちょっぴり新しいモデルに > なるかもってのが今の話題ですよね。 「新しいモデルになる = private instance variable を使うのが推奨 されるコーディングスタイル」って事でしょうか? それは・・・世の 中 @__foo だらけになるのはちょっと(かなり?)抵抗があるので別の方 法を提案してみます。 Ruby を変えない方向でサブクラスに対して閉じる方法として、proxy クラスを作ってそれを継承させるのはどうでしょうか?。サブクラスに 見せたいところだけ proxy が中継するという意味です。 継承の界面でのインタフェースが問題なるのは、親も子も自分で作るよ うなケースではなく、フレームワーク的なライブラリAPI の一部として 公開するクラスの場合が主だと思います。そういう場合だけ親を proxy にするのであればコーディング量的にも、速度的にもそれほど重くはな いのではないかと想像します(そういうライブラリ書いたことないんで すが)。 それはそれとして、Module を書く時に private instance variable 的 なものが欲しかったりはしますが(なんだ結局賛成なのか)。というか Module の instance 変数がインクルードしたクラス側のメソッドで見 えても嬉しい事はあんまりないような気がします。 小宮 健一