C++でデザインパターンを実装していこうよ 第17回 Mementoパターン

オブジェクトの状態を保存する、ってやつですね。

今回のサンプルで微妙なのはname_とかphone_とかがかぶっちゃってるところですね。

今回の場合Mementoクラスがただのデータホルダクラスなんだから、SalesProspectクラスのメンバとしてMementoオブジェクトのみをもつようにして、SalesProspect::Name()とかはそれらのMementoクラスのセッタとかを使えば良いと思います。

アンドゥやリドゥに使えます的なことを結城先生のデザインパターン入門に書いてました。

http://www.dofactory.com/Patterns/PatternMemento.aspx#_self2

https://github.com/TakahashiShuuhei/DesignPatternPractice/blob/master/Memento.cpp