まとめ
パターン比較レビュー
| パターン | 適用条件 | 強み | 注意点 | よく使うシーン |
|---|---|---|---|---|
Command | 操作を記録・管理したい | Undo/Redo、操作履歴の再実行 | 状態管理は命令側に任される | テキストエディタ、バッチ処理 |
Memento | 状態を丸ごと保存・復元したい | 状態の復元が簡単、外部から安全に扱える | スナップショットが大きくなると重い | フォーム復元、セーブデータ |
まとめと選び方の指針
- 操作の「命令」を記録 →
Command - 状態そのものを記録・復元 →
Memento - 両方を併用して、「操作履歴+状態保存」も可能!
実際の設計会話での使い分けヒント
- この操作、履歴が残ってないと戻せないですね。
Commandで履歴持たせましょう - 状態全体のスナップショットを残すなら
Mementoの方がシンプルかも - 操作と取り消しをセットで持ちたいときは
Command、状態まるごと残したいときはMementoですね