前田です。

At Fri, 8 Mar 2002 15:26:09 +0900,
matz / ruby-lang.org (Yukihiro Matsumoto) wrote:
> |> それと、ややオブジェクト生成のコストが上がるのが気になるとい
> |> えば気になります。
> |
> |initialize_forを定義しなかった時のコストがそんなに悪くなければ(た
> |とえばフラグのチェックとかで済めば)、そんなに気にならないと思うの
> |ですが、どうでしょう。
> 
> たぶん、するならKernel.initialize_for()をなにもしないメソッ
> ドにしておいて、それを呼ぶという実装にすると思います。

Module#initialize_forでなくてKernel.initialize_forなんです?

> とすると、コストは
> 
>   * そのオブジェクトのCLASS_OF()の全ancestorsからmoduleを選
>     び、それぞれについて1回メソッド呼び出し
> 
> ということになります。まあ、たいしたことはないというか、すべ
> てのオブジェクトについてだから馬鹿にできないというか。

Moduleオブジェクトにinitialize_forを持っているかどうかのフラグを
持たせて、フラグのチェックくらいのコストに押さえることはできない
ですかね。
# 今度はフラグの更新のコストが問題になりそうですが。

> あと、initialize_for()って名前(「動詞+前置詞」パターン)はあ
> んまり好きな名前じゃないです。

extend_objectにならって、initialize_objectとか。

-- 
前田 修吾