【发布时间】:2011-09-23 14:44:21
【问题描述】:
我是一个初学者,我一直认为重复代码是不好的。但是,似乎为了不这样做,您通常必须进行额外的方法调用。假设我有以下课程
public class BinarySearchTree<E extends Comparable<E>>{
private BinaryTree<E> root;
private final BinaryTree<E> EMPTY = new BinaryTree<E>();
private int count;
private Comparator<E> ordering;
public BinarySearchTree(Comparator<E> order){
ordering = order;
clear();
}
public void clear(){
root = EMPTY;
count = 0;
}
}
将 clear() 方法中的两行复制并粘贴到构造函数中而不是调用实际方法对我来说是否更理想?如果是这样,它有多大的不同?如果我的构造函数进行了 10 次方法调用,每一次都只是将一个实例变量设置为一个值怎么办?最佳编程实践是什么?
【问题讨论】:
-
但是等等,如果您现在调用该方法,我们将抛出一个 SECOND 方法调用,完全免费!只需支付运费和手续费!不过说真的。方法调用有开销,就像加载更多代码有开销一样。在某些时候,一个变得比另一个更昂贵。唯一的判断方法是对您的代码进行基准测试。
-
过早的优化报价在 3 ... 2 ... 1
-
我看不出对此投反对票的原因 - 这家伙问的是一个完全合理的问题。对某些人来说,这可能是一个显而易见的答案,但这并不是一个坏问题!
-
确实,这是一个非常合理的问题,如果有完全相同的副本,可能会否决票。
-
是的,如果很明显很抱歉,但我正在自学,而且我只学了几个月。我在网上的示例代码中看到的一些东西我发现不是很好的做法,所以我只想仔细检查一下。
标签: java performance methods call