В классе мы строили расширяемый класс массива. При этом мы создали метод, в котором вы повторяли массив, а затем мы создали другой метод, который использовал один и тот же код для перебора по списку, но вместо вызова более раннего метода мы переписали один и тот же код. Когда я спросил своего профессора о том, почему мы переписываем код вместо вызова более раннего метода, который содержит тот же код, он сказал, что это сводится к эффективности. Как изменяется эффективность между переписыванием куска кода и вызовом метода с одним и тем же кодом?Код перезаписи вместо метода вызова с тем же кодом
код из класса
private void checkSize(int index){
if (index >= myArray.length){
throw new ArrayIndexOutOfBoundsException();
}
}
public void set(int index, T obj){
if (index >= myArray.length){
reinitalizeArray(index+1);
}
myArray[index] = obj;
}
Почему бы переписать, если заявление в наборе, когда вы могли бы сделать попробовать поймать, вызвав checkSize() как так?
private void checkSize(int index){
if (index >= myArray.length){
throw new ArrayIndexOutOfBoundsException();
}
}
public void set(int index, T obj){
try{
this.checkSize(index);
myArray[index] = obj;
}catch (ArrayIndexOutOfBoundsException exception){
reinitalizeArray(index+1);
}
}
Предоставление фрагмента кода может быть проще «судить» вашу ситуацию. – User404
Обычно это не имеет никакого значения, поскольку компилятор сам выполняет такую оптимизацию ... –
Решение о дублировании кода должно (почти) никогда не основываться на производительности - он должен основываться на том, будут ли два бита кода всегда делать то же самое и делиться одними и теми же знаниями в будущем или нет.Если ответ «да», то не дублируйте, если ответ «нет», вы должны, вероятно, дублировать. – assylias