Every day is a new day

ひつじのプログラミング日記。

Memento パターン

 

実は、実務でUndo/Redoを実装する必要があり、Mementoパターンを使おうかどうしようかという議論があったりします。

とはいえ、Mementoパターン自体はそれほど難しいことを説明してはいないように思う。

要するにUndoに使うスナップショットデータをcreateMementoメソッドで作成してリストとかマップで保持し、後でsetMementoメソッドによって取り出して設定しているだけだ。

特に継承もなく、委譲によって実現されている。

 

ただよくよく調べてみると、Undo/RedoはCommandパターンによっても実現できるようだ。

 

うーん、どちらにすべきなんだろうか。こちらの方が言うよう、「実装依存」ということなんでしょうね。

 

<気になった単語>

・caretaker(世話人