Selon la réponse acceptée sur " Justification de préférer les variables locales aux variables d'instance? ", Les variables devraient vivre dans la plus petite portée possible.
Simplifier le problème dans mon interprétation, cela signifie que nous devrions reformer ce type de code:
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();
}
}
dans quelque chose comme ça:
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();
}
}
mais selon "l'esprit" de "les variables doivent vivre dans la plus petite portée possible", "les variables n'ayant jamais" n'ont-elles pas une portée plus petite que "les variables"? Je pense donc que la version ci-dessus devrait être refactorisée:
public class Main {
public ABResult getResult() {
return ABFactory.mix(getA(), getB());
}
private getA() {
return SomeFactory.getA();
}
private getB() {
return SomeFactory.getB();
}
}
donc cela getResult()
n'a pas de variables locales du tout. Est-ce vrai?
final
mot-clé ou non.