De acuerdo con la respuesta aceptada sobre "¿ Razonamiento para preferir las variables locales a las variables de instancia? ", Las variables deben vivir en el menor alcance posible.
Simplifique el problema en mi interpretación, significa que deberíamos refactorizar este tipo de código:
public class Main {
private A a;
private B b;
public ABResult getResult() {
getA();
getB();
return ABFactory.mix(a, b);
}
private getA() {
a = SomeFactory.getA();
}
private getB() {
b = SomeFactory.getB();
}
}
en algo como esto:
public class Main {
public ABResult getResult() {
A a = getA();
B b = getB();
return ABFactory.mix(a, b);
}
private getA() {
return SomeFactory.getA();
}
private getB() {
return SomeFactory.getB();
}
}
pero de acuerdo con el "espíritu" de "las variables deben vivir en el alcance más pequeño posible", ¿no es "nunca tener variables" tener un alcance más pequeño que "tener variables"? Así que creo que la versión anterior debería ser refactorizada:
public class Main {
public ABResult getResult() {
return ABFactory.mix(getA(), getB());
}
private getA() {
return SomeFactory.getA();
}
private getB() {
return SomeFactory.getB();
}
}
así que eso getResult()
no tiene ninguna variable local en absoluto. ¿Es eso cierto?
final
palabras clave o no.