MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

C++によるデザインパターン18: Mementoパターン


Mementoパターン

Mementoパターンは、

ある時刻のインスタンスの状態を保存しておき、

必要な時に保存していたインスタンスの状態に

復元できるにするデザインパターンです。


あるインスタンスの状態を保存しておくことができる

Mementoクラスを作成し、

Mementoクラスのオブジェクトを作る処理と、

Mementoクラスのオブジェクトから、

インスタンスを復元する処理を実装することで、

ある時刻のインスタンスの状態を復元することができるようになります。


一見すると、このMementoパターンは

Prototypeパターンに似ていると思いますが、

C++によるデザインパターン6: Prototypeパターン - MY ENIGMA

Prototypeパターンは

インスタンスのコピーが目的ですが、

Mementoパターンは

過去の状態を保存し復元することを目的としています。


C++によるサンプルコード

下記のGitHubページにて公開しています。

cpp/Memento.cpp at master - AtsushiSakai/cpp

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com