2012年5月2日水曜日

Mementoパターン

たまにはデザインパターンについて復習でもしてみる。今回はMementoパターン。
Mementoには記念品や思い出といった意味があり、ざっくりとまとめると「状態を保存しておけば、やり直しができるじゃないか!」といったもの。

Mementoパターンに登場するのは下記の3クラス。(便宜上クラスとしているが、役という表現のほうがしっくりくるかも)

Originator

Save(Mementoを作成する)とLoad(Mementoを読み込む)の機能を有するクラス。

Memento

セーブデータそのものを表すクラス。

Caretaker

Originatorに働きかけてSaveとかLoadを実行し、セーブデータ(Memento)を管理するクラス。


ポイント

  • Originator君はMementoを作成する人なので、Mementoのすべてに触れることができる。
  • 対してCaretakerさんはMementoを管理(永続化とか)するだけなので、Mementoの必要最低限についてのみ触れられれば良い。
って感じにすると、Mementoが美しくカプセル化される。

0 件のコメント:

コメントを投稿