アプリケーションの状態が変化すると、アプリケーション ループ (またはゲーム ループなど、名前が何であれ) は別の一連の命令を実行する必要があります。多くの場合、これは if ステートメントを使用することを意味します。
インターフェイスとインターフェイス参照変数を使用すると、if ステートメントの必要性が軽減され、状態の変化が見栄えがよくなることがわかりました。
class red implements IColor
class blue implements IColor
IColor colorState;
Application loop
{
colorState.drawColor
}
これは、インターフェイスによって if ステートメントが不要になるという意味の例です。状態を赤から青に変更する場合は、次のようにします。
colorState = a reference to a blue instance;
しかし、これほど単純な if 文が
if (bool)
stuff
else
stuff
インターフェイスよりも悪いですか?ステートメントが高価であると想定され、分岐予測子が機能するかどうかは通常知っていますが、分岐はここでも予測されていますか?