小波です. IWAOKA Masahiro wrote: > on Thu, Nov 03, 2005 at 09:29:12AM +0900, Hideo Konami wrote: >>>普通に >>>babycat = mike.make_baby(tama) >>>だといけないですか? >> >>これだと2つのオブジェクトの関係が等価になっていませんよね.それが >>いやだったのです.Cat.fight(mike,tama)もその線です. > > オブジェクトを主体として考えるならば、第三者(Cat)によって戦わさ > れてる(上の例)というよりは、"mike" が "tama" と戦う(例えば > mike.fight(tama))の方が自然だと思います。baby の例も同様。 そういう発想も分からなくはありません.しかし世界はオブジェクトを 戦わせる場でもありますから,レフェリーや神様の立場に立ってオブジ ェクトを眺めることも必要なことではないでしょうか. もっともその立場からしても Cat.fight(mike,tama) とかいうふうにクラス名が頭にくるのは,たしかにへんですね.どういう 記述が自然なのでしょうか.単に fight(mike,tama,nyan,nyaa) で,結局クラスの外で戦わせればいいということになるのかな.ううむ. class メソッドを利用して属しているクラスを調べてから,戦い方の流 儀を使い分けさせるというのが,オブジェクトの神様の思し召しなので しょうか. これはいろいろ考えさせられますね.ご指摘ありがとうございます.