たとえば、ツリーデータ構造を持つ特定の外部ライブラリがあるとします。例:S
サブクラスB1
からへのスーパークラスB5
。サブクラスにもサブクラスがある場合があります。
次に、このデータ構造にメソッドを追加します。通常、ポリモーフィズムを使用して実装します。各サブクラスは特定のメソッドを実装します。
ただし、外部ライブラリを扱っているため、元のクラスを変更することはできません。私の頭に浮かぶ2つの代替ソリューションがあります。
- を使用してケースをチェックするメソッドを使用して、新しいクラスを作成します
instanceof
- 各クラスのサブクラスを作成し、そこにメソッドを実装します。
一般的なケースはどれですか?または、より良い代替ソリューションはありますか?