Memento は、オブジェクトを以前の状態に復元する (ロールバックによる元に戻す) 機能を提供するソフトウェア設計パターンです。
記念品の 構造:
memento パターンは、 originator、caretaker、mementoの 3 つのオブジェクトで実装されます。
オリジネーターは、内部状態を持つオブジェクトです。
管理人は発信者に何かをしようとしていますが、変更を取り消すことができるようにしたいと考えています。管理人は最初に作成者に記念品を要求します。次に、実行しようとしていた操作 (または一連の操作) を実行します。操作前の状態にロールバックするために、mementoオブジェクトをoriginatorに返します。
シリアル化は、オブジェクトの状態を永続化するために使用されます。デザインパターンではありません。Serializationの詳細については、この SE の質問を参照してください。
ファイルへの/からのオブジェクトの書き込みと読み取り以外のSerializableの使用
MementoパターンはSerializationを使用する場合と使用しない場合があります。memento オブジェクトが JVM を離れていないか、リモート呼び出しを介して他のサービスに渡されていない場合、memento はSerializationなしでオブジェクトの状態をメモリに保存できます。保存されたオブジェクトは、後で状態を変更するために使用できます。
詳細については、ソース作成の記事を参照してください。