>>17
> メソッド名やパラメータ数を修正した時に呼出側も漏れなく修正されるかどうかはツールの問題です。

言語の問題であることも多いよ。
RubyわからんのでPerlの例でいうけど、

たとえばPerlだと

{
  package Class1;
  sub new { ... }
  sub foo { ... }
}

↑このfooというメソッド名を修正した時、

my $c = $flag ? Class1->new() : Class2->new();
$c->foo();
   ↑ 呼び出し側のfooを変更していいかどうかなんて判別不可能だしね。

Rubyも変数に型がないから、同じじゃない?