コマンドパターンとは?
こまんどぱたーん
コマンドパターンとは、操作や要求をオブジェクトとして封じ込め、実行・取り消し・再実行を柔軟に制御できるようにするオブジェクト指向のデザインパターンです。
コマンドパターン(Command Pattern)は、GoF(Gang of Four)が提唱した23のデザインパターンの一つで、「行動」を表す振る舞いパターンに分類されます。操作そのものをオブジェクトとして表現することで、操作の呼び出し元と実行ロジックを切り離します。
基本的な構成要素は次のとおりです。
- Command インターフェース:execute() などの実行メソッドを定義する共通インターフェース。
- ConcreteCommand:実際の処理ロジックを持つ具体的なコマンドクラス。
- Invoker(呼び出し元):コマンドを保持・実行するオブジェクト。処理の詳細を知らなくてよい。
- Receiver(受け手):実際の業務処理を持つオブジェクト。
コマンドをオブジェクトにすることで得られる主なメリットは、Undo/Redo の実装が容易になること、コマンドをキュー・ログ・スタックに積んで管理できること、そしてマクロ操作(複数コマンドの組み合わせ)を自然に表現できることです。
テキストエディタや画像編集ソフトの操作履歴管理、GUIのボタンアクション設計、ゲームの入力システムなどで広く活用されています。
使い方・例文
テキストエディタの「元に戻す(Ctrl+Z)」機能はコマンドパターンの典型例で、各編集操作をコマンドオブジェクトとして記録し、スタックから順に取り出してUndo処理を実行します。
この用語をシェア
最終更新: