3

ときどき、プログラマーが「基本ケース」を処理するために特定のクラスを拡張したコードを目にします。たとえば、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。だから、私の質問は、この種の練習に何か利点はありますか? もしそうなら、いつ、なぜ?そうでない場合、なぜですか?

4

1 に答える 1