Hat es einen Vorteil, einen Verweis auf ein untergeordnetes Instanzfeld in der Basisklasse zu speichern, anstatt immer einen abstrakten Getter aufzurufen, wenn in der Basisklasse darauf zugegriffen wird?Basisklasse, die einen Verweis auf die untergeordnete Variable speichert?
Angenommen, ich habe eine Basisklasse wie unten:
public abstract class BaseClass {
abstract String getText();
public void printText() {
System.out.println(getText());
}
}
Und ein Kind Klasse wie unten, wo getText() ein Feld zurückkehrt, die nie ändern wird.
Gibt es einen Vorteil/Nachteil, um stattdessen zu den unten genannten zu konvertieren?
public abstract class BaseClass {
abstract String getText();
private String text;
public void printText() {
System.out.println(text);
}
@PostConstruct
public void postConstruct() {
this.text = getText();
}
}
Es hängt davon ab, ob 'getText()' ein teurer Anruf ist und ob bei verschiedenen Aufrufen unterschiedliche Ergebnisse zurückgegeben werden können. – shmosel