小波です.
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 メソッドを利用して属しているクラスを調べてから,戦い方の流
儀を使い分けさせるというのが,オブジェクトの神様の思し召しなので
しょうか.

これはいろいろ考えさせられますね.ご指摘ありがとうございます.