Memento: 目的と動機 (オブジェクトの状態をカプセル化し、後で復元できるようにする)
定義
**Memento: 目的と動機 (オブジェクトの状態をカプセル化し、後で復元できるようにする)**とは、オブジェクトの状態をカプセル化し、後で復元できるようにするための概念である。名称だけでなく、利用者から観測できる振る舞いと、それを成立させる前提を契約として理解する必要がある。
固有の仕組みと例
オブジェクトの状態をカプセル化し、後で復元できるようにする。実装では入力、成功結果、失敗条件、状態遷移を列挙し、その判断を所有するモジュールを一つに定める。
適用時は、表題が扱う判断の入力と出力を具体例で固定する。注文を扱うなら、注文ID、現在状態、要求操作、期待状態、エラーを表にし、許されない遷移もテストする。これにより内部実装を変更しても、Memento: 目的と動機 (オブジェクトの状態をカプセル化し、後で復元できるようにする)が保証する外部の意味を維持できる。
設計上の確認事項
責務を持つ境界が一つか、呼び出し側が内部表現へ依存していないか、再試行や並行実行で規則が壊れないかを確認する。性能が関係する場合は、抽象化前後の遅延、メモリ、外部呼び出し回数を同じ条件で測定する。
限界とトレードオフ
Memento: 目的と動機 (オブジェクトの状態をカプセル化し、後で復元できるようにする)の導入には、新しい型、変換、検証、運用手順を理解するコストが伴う。将来の変化を根拠なく予測して境界を増やすと、単純な変更まで複数ファイルへ波及する。解決対象が実在することを確認し、直接的な実装との比較、採用しなかった選択肢、撤回条件を記録することが重要である。