効率的な getter メソッドの記述
Visualforce 要求では、式、action 属性、および他のメソッドコールが評価されます。フォーム送信などの要求では、クラス内で getter メソッドが複数回コールされる可能性があります。getter メソッドの効率を高めるには、同じレコードの不要な参照を回避することができます。
各要求の処理負荷を軽減するには、プロパティの計算値をキャッシュして、他のコールで値を再計算せずにそのプロパティにアクセスできるようにします。
また、オブジェクトが null の場合のみデータを照会するように Apex クラスの getter メソッドを設定することもできます。たとえば、次のコードスニペットでは、ページに関連付けられた取引先レコードが返されます。最初のメソッドコールでは、MyAccount オブジェクトが null のため、レコードが照会されます。後続のコールでは、オブジェクトの保存済み値が返されるため、他の同じ SELECT クエリを回避することができます。
1
2 Account MyAccount;
3 public Account getMyAccount() {
4 if (MyAccount == null) {
5 MyAccount = [SELECT name, annualRevenue FROM Account
6 WHERE
7 id = :ApexPages.currentPage().getParameters().
8 get('id')];
9 }
10 return MyAccount;
11 }
12