コメントの続き

済みません。module systemのことしか考えていなかったので、moduleと無関係な方法は一瞬も考えてませんでした。module systemを使わず、単純に拡張するということですよね。
唯、一点だけ難を言えば、変更したメソッドの中から元のメソッドを呼び出すためには元のメソッドをaliasする必要があるのと、そうしたときに、独立した複数個の拡張を上書きで適用しなければならない場合が面倒かなと思います。

もう一点ありました。
module systemを使用した場合には、一部のクラスを外部に非公開にするという機能を導入できますが、open classだけでは困難ではないでしょうか?非公開にする例としてはFacadeパターンがあります。非公開が必要なデザインパターンは全てselector namespaceで書けるとなれば不要ですが。