From: Yukihiro Matsumoto Date: 2009-12-24T09:28:30+09:00 Subject: [ruby-dev:39919] Re: Time.now + str と #to_r まつもと ゆきひろです In message "Re: [ruby-dev:39915] Re: Time.now + str と #to_r" on Thu, 24 Dec 2009 09:06:06 +0900, Kenta Murata writes: |> その場合、convert_toとかcast_toとかのメソッドの実装の中で、ク |> ラスごとに条件分岐するのであれば、新たに数クラスが増えた場合 |> に対応するのが難しくなるのではないでしょうか。実装としてダブ |> ルディスパッチを使えば、結局はなんらかのメソッド名を考える必 |> 要があるのではないかと。 | |自分が知らないクラスへの変換時にダブルディスパッチで呼び出すクラスメソッドを |convert_from という名前に決めれば、この場合については対称的になって美しいと思います。 なんとなく理解できた気がしないので、もうちょっと説明してもら えませんか。 仮にRationalという組み込みでないクラスがあったとして、 r = 2.convert_to(Rational) は具体的にはどんな処理をするのでしょう? ただし、Rationalは組 み込みではないので、2はRationalというクラスについて知らないこ ととします。