基本クラスにアクセスするときに抽象ゲッターを常に呼び出すのではなく、基本クラスに子インスタンスフィールドへの参照を格納する利点はありますか? getText()は決して変わらないフィールドを返している場合、以下のような子変数への参照を格納する基本クラス?
public abstract class BaseClass {
abstract String getText();
public void printText() {
System.out.println(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