From: Yukihiro Matsumoto Date: 2006-11-06T13:40:52+09:00 Subject: [ruby-dev:29854] Re: Module duplicate まつもと ゆきひろです In message "Re: [ruby-dev:29851] Re: Module duplicate" on Mon, 6 Nov 2006 10:56:18 +0900, Shugo Maeda writes: |> # 前田くん向けの説明: |> # (コピーしないけど)Satherのinlcudeであると思えば気持ち悪く |> # ないかも。 | |# Satherはコピーですし、superもないですからねえ。 まあ、そうですね。 |でも同じメソッドが二回呼ばれるのはどうなのかなあ。 同じメソッドが呼ばれるケースはあまり多くないでしょう。 class Root def foo p :root end end module M def foo super p :M end end class C1 < Root include M def foo super p :C1 end end class C2 < C1 include M def foo super p :C2 end end のような人工的なケースが自然に発生することは滅多にないと思い ます。また、それぞれの要求をミクロに積み上げると C2 Mでincludeしたfooを呼びたい C1 Mでincludeしたfooを呼びたい M 組み込まれたクラスの親クラスのfooが呼びたい Root 基本となるfooを提供 となりますから、むしろ二度呼ばれるほうが自然に見えてきません か? 苦しいかなあ。 |強いていえば、ささださんの作業への影響が気になることくらいですが、 |ささださんも決まってしまえばわりとどっちでもいいんでしょうか。 いや、継承ラインに同じモジュールが二度登場するのはかなり致命 的らしいですよ。この辺が私としても強く主張しにくいところ。 まつもと ゆきひろ /:|)