機能追加(メソッド追加)に付いての質問です。
既存クラスに機能追加した時に、OCPを守った上で一番良い方法は?

スーパークラスも機能追加したい場合がよくあると思いますが
OCPだと既存クラスに手を入れるのは基本NGになる。
そうなると、やっぱりメタクラスで実装するのが一番なのか? 
しかし、メタクラスを実装していない言語も多い。

あとは、スーパークラスをNULLオブジェクトとして設計する。
既存クラスに手を入れるが、NULLオブジェクトだからロジックには手が入らない。
実用上問題ないと考える。

みなさんはメソッド追加を見越して、どのようなクラス設計をしていますか?
そもそもスーパークラスにメソッド追加自体を許さないとか?