创建子类来处理“基础案例”

时间:2013-06-16 19:02:21

标签: java class

我偶尔会看到程序员扩展某个类以处理“基本案例”的代码。例如,如果我创建一个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类的方法简单得多。所以,我的问题是:这种做法有什么好处吗?如果是的话,何时以及为何;如果没有,为什么不呢?

1 个答案:

答案 0 :(得分:4)

这种方法的一大缺点是它会导致代码大小增加,代码维护更少。潜在的优势可能是提高了性能,但您确实需要进行分析才能确保。

就个人而言,我不会这样做。