0
在基類中存儲對子實例字段的引用有什麼好處,而不是在基類中訪問時總是調用抽象的getter?存儲對子變量的引用的基類?
假設我有一個基類象下面這樣:
public abstract class BaseClass {
abstract String getText();
public void printText() {
System.out.println(getText());
}
}
和子類了下方的getText()返回一個字段,它永遠不會改變。
public ChildClass extends BaseClass {
private String text = "blah";
@Override
public String getText() {
return text;
}
}
轉換爲下面的代碼有什麼優點/缺點嗎?
public abstract class BaseClass {
abstract String getText();
private String text;
public void printText() {
System.out.println(text);
}
@PostConstruct
public void postConstruct() {
this.text = getText();
}
}
這取決於您是否期望'getText()'是一個昂貴的通話,以及它是否可以在不同的通話中返回不同的結果。 – shmosel