From: Minero Aoki Date: 2002-11-23T11:42:03+09:00 Subject: [ruby-dev:18929] Re: class variables あおきです。 In mail "[ruby-dev:18889] Re: class variables" matz@ruby-lang.org (Yukihiro Matsumoto) wrote: > まつもと ゆきひろです > |これはなんか納得できません。net/http も動かなくなりますし。 > > net/httpはNet::HTTPクラスの範囲内でしかクラス変数を使ってな > いので問題ないと思うんですが。 実は Net::HTTP.Proxy() で動的に継承して使っているのです。 > 現状のクラス変数の問題は、名前の(偶然の)衝突に関してめちゃめ > ちゃ弱い点です。たまたま同じ名前のクラス変数を使っているモ > ジュールをインクルードしたら悲惨なことが発生します。その辺を > なんとかしたいというのが今回の提案の基礎にあります。 しかし、メソッドにしたところで衝突は解決できないのではないで しょうか。同じ名前で公開したらやっぱり衝突します。直すのは alias が使えるメソッドのほうが楽ですが、重複していることを 発見する難しさは変わりません。そしてこの場合は発見するほうが 重要なんですよね? > | * 一つの継承木単位で必要なパラメータで、 > | * 継承木の外のオブジェクトには公開したくない > | > |という値はどこに置けばいいのでしょう? > > 青木さんの推察の通り、クラス変数(orクラスのインスタンス変数) > +クラスメソッド(を、たぶんclass_attr_readerのようなメソッド > を介して)使おうと思ってました。 うーん、その方法だと公開しなきゃいけないのがちょっと嫌ですね……。 ------------------------------------------------------------------- 青木峰郎