local binding vs. open class

local binding仕様での拡張は不要で、通常のクラス拡張で済むのではないかという議論で、通常のクラス拡張では、以下の二点で問題があるのではないか、と書いた。

  1. 変更したメソッドの中から元のメソッドを呼び出すためには元のメソッドをaliasする必要があるのと、そうしたときに、独立した複数個の拡張を上書きで適用しなければならない場合が面倒
  2. 一部のクラスを外部に非公開にするという機能を導入するのが困難

他に気付いた点としては、selector namespaceによる拡張に通常のクラス拡張を組み合わせようとした場合に、どのように適用すれば全体の整合性が取れるのかが難しい気がする。そういうことをしたいかどうかもわからないが。