ときどき、プログラマーが「基本ケース」を処理するために特定のクラスを拡張したコードを目にします。たとえば、Tuple
整数のタプルを表すクラスを作成する場合、次のようなものになります。
class Tuple {
private int[] values;
...
}
しかしTuple
、長さ 0、1、または 2 のタプルなど、いくつかの基本ケースに対応するために拡張する人もいます。
class Tuple0 extends Tuple {
...
}
class Tuple1 extends Tuple {
private int value1;
...
}
class Tuple2 extends Tuple {
private int value1;
private int value2;
...
}
もちろん、...
各TupleN
クラスのメソッド ( で示される) は、ジェネリック クラスのメソッドよりもはるかに単純ですTuple
。だから、私の質問は、この種の練習に何か利点はありますか? もしそうなら、いつ、なぜ?そうでない場合、なぜですか?