[ruby-list:41813] Re: "module private"な変数・メソッド

From: Yukihiro Matsumoto <matz@...>
Date: 2006-02-04 06:15:18 UTC
List: ruby-list #41813
まつもと ゆきひろです

In message "Re: [ruby-list:41812] "module private"な変数・メソッド"
    on Sat, 4 Feb 2006 13:17:25 +0900, KURODA Hiraku <hiraku@hinet.mydns.jp> writes:

|現在Rubyでは、モジュールの中で定義されたメソッドは、そのモジュールを
|includeしたクラスからは無制限に呼び出せます(よね?(汗
|これを、同じモジュールで定義されたメソッドからしか呼べないように制限する
|手法って何かないでしょうか?

現時点ではないです。長らく懸案ではあるのですが。オブジェクト
指向言語としてみるとこのスコープ制御の弱さはRuby の最大の弱
点かもしれません。

逃げ道としては1.9ではクラス変数はそのクラス/モジュールからし
か見えないので、そこにlambdaを代入しておいてcallするという方
法が考えられます。

  @@private1[f]

のような醜い形ですけど。

今後、Ruby 2.0でなんらかの対策を行いのですが、なかなかいい案
が浮かびません。温泉につかって考えようか。

                                まつもと ゆきひろ /:|)

In This Thread