我偶尔会看到程序员扩展某个类以处理“基本案例”的代码。例如,如果我创建一个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
类的方法简单得多。所以,我的问题是:这种做法有什么好处吗?如果是的话,何时以及为何;如果没有,为什么不呢?
答案 0 :(得分:4)
这种方法的一大缺点是它会导致代码大小增加,代码维护更少。潜在的优势可能是提高了性能,但您确实需要进行分析才能确保。
就个人而言,我不会这样做。