私は多くのコンポーネントを備えた大規模な(少なくとも私にとっては)GUIを開発しています。有効化ルールの背後には、非常に複雑なメカニズムがいくつかあります(つまり、他のコンポーネントのステータスに応じて、どのコンポーネントを有効化/無効化する必要があるか)。ユーザーインターフェイス全体を更新するたびに(設定ファイルを読み込んだ後など、それほど頻繁ではありませんが、必要になる場合があります)、すべてのコンポーネントを設定するためにルールセットを確認する必要があります。私が基本的に行うことは次のとおりです。
meaningfulName1.setEnabled(conditionForMeaningfulName1());
meaningfulName2.setEnabled(conditionForMeaningfulName2());
meaningfulName3.setEnabled(conditionForMeaningfulName3());
// etc
代わりに次のことを行うのが理にかなっているのかどうか自問します。
boolean temp = conditionForMeaningfulName1();
if (meaningfulName1.isEnabled != temp) meaningfulName1.setEnabled(temp);
temp = conditionForMeaningfulName2();
if (meaningfulName2.isEnabled != temp) meaningfulName2.setEnabled(temp);
temp = conditionForMeaningfulName3();
if (meaningfulName3.isEnabled != temp) meaningfulName3.setEnabled(temp);
// etc
その背後にある考え方は、状態がすでに目的の状態である場合にフラグを設定しないことでパフォーマンスを節約し、したがってグラフィカルな更新(および関数呼び出し)を節約することです。
これは大規模に意味があると思いますか、それとも時間を節約してコードを読みにくくするだけではありませんか?