Laut der akzeptierten Antwort zu " Argumentation, lokale Variablen gegenüber Instanzvariablen zu bevorzugen? " Sollten Variablen im kleinstmöglichen Bereich leben.
Vereinfache das Problem in meiner Interpretation, es bedeutet, dass wir diese Art von Code überarbeiten sollten:
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();
}
}
in so etwas:
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();
}
}
aber nach dem "Geist" von "Variablen sollten möglichst im kleinsten Bereich leben", haben "niemals Variablen" nicht einen kleineren Bereich als "Variablen"? Daher denke ich, dass die obige Version überarbeitet werden sollte:
public class Main {
public ABResult getResult() {
return ABFactory.mix(getA(), getB());
}
private getA() {
return SomeFactory.getA();
}
private getB() {
return SomeFactory.getB();
}
}
das getResult()
hat also überhaupt keine lokalen Variablen. Ist das wahr?
final
Schlüsselwort verwenden sollten oder nicht.