Java, насколько дорогой вызов метода - PullRequest
75 голосов
/ 27 июня 2011

Я новичок, и я всегда читал, что повторять код плохо.Однако, похоже, что для того, чтобы этого не делать, вам, как правило, нужно иметь дополнительные вызовы методов.Допустим, у меня есть следующий класс

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 вызовов метода, каждый из которых просто установил значение переменной экземпляра?Какая лучшая практика программирования?

Ответы [ 12 ]

0 голосов
/ 27 июня 2011

Учитывая память современных компьютеров, это очень недорого. Всегда лучше разбить ваш код на методы, чтобы кто-то мог быстро прочитать, что происходит. Это также поможет сузить количество ошибок в коде, если ошибка ограничена одним методом с телом из нескольких строк.

0 голосов
/ 27 июня 2011

Я бы не столько беспокоился о вызове метода, сколько о его логике. Если бы это были критические системы, а система должна была быть «быстрой», я бы посмотрел на оптимизацию кодов, выполнение которых занимает много времени.

...