Memento パターン
実は、実務でUndo/Redoを実装する必要があり、Mementoパターンを使おうかどうしようかという議論があったりします。
とはいえ、Mementoパターン自体はそれほど難しいことを説明してはいないように思う。
要するにUndoに使うスナップショットデータをcreateMementoメソッドで作成してリストとかマップで保持し、後でsetMementoメソッドによって取り出して設定しているだけだ。
特に継承もなく、委譲によって実現されている。
ただよくよく調べてみると、Undo/RedoはCommandパターンによっても実現できるようだ。
うーん、どちらにすべきなんだろうか。こちらの方が言うよう、「実装依存」ということなんでしょうね。
<気になった単語>
・caretaker(世話人)