どこかでインスタンスのスナップショットを取っておき、いざというときにその状態を復元するような仕組みをMementoパターンという。
18.Memento パターン | TECHSCORE(テックスコア)
main.cppで、
state->printで値を出力、state->nextで次の処理に進める。
途中、state->create_mementoでスナップショットmementoを作っておいて、一方で処理自体は進める。
state->set_mementoで取っておいたmementoをセットすると、その時の状態に戻る。
$ vi main.cpp $ g++ -o main main.cpp memento.cpp state.cpp $ ./main value_ = 0 value_ = 1 value_ = 2 value_ = 3 value_ = 4 value_ = 5 value_ = 3 $
mementoを取った時の3に戻っている。
Sample/designpattern/memento/memento/src/memento at master · bg1bgst333/Sample · GitHub