コマンドパターン
操作そのものをオブジェクトとして包み、キューに積んだり、取り消したり、後から再生したりできるようにするデザインパターン。
Gang of Four の『Design Patterns』(1994年)で体系化され、最もしっくりくる居場所を見つけたのはゲームである。Robert Nystrom の『Game Programming Patterns』(2014年)も、この項目から始まる。キー入力が直接 jump() を呼ぶ代わりに、JumpCommand というオブジェクトを作る。すると同じコードでキー割り当ての変更、AI への同一コマンドの供給、再生用の記録ができる。
効果が最も大きいのは undo/redo だ。自分を実行できるコマンドは、自分を元に戻す方法も覚えられる。入力層はコマンドの中身を知らず、実行すべきことだけを知っている。この疎結合はネットワーク対戦でも役立ち、クライアントは完成した状態ではなくコマンドを送る。