12
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

マンガでわかる Memento

30FF9A6B-DE63-4F33-A982-44F3F818D51A.png

まったく、現代っ子は Ctrl + Z があって当たり前だと思ってるんだから。

Memento という英単語は馴染みのない方も多いかもしれませんが、これ意味としては、「思い出の品」です。事実そのものは後に残せなくても、記念品があれば代わりになる、みたいな感じ。

リバーシやってて、気づくのが遅れたら 1 手戻しただけじゃ勝ち目ないような状況に追い込まれてたなんて、よくある話ですね。ぜんぶの手を記録しておけば、1 手戻しでは勝てないなら 2 手 3 手戻して... と、スマホのカメラをアンドゥスタックとして使えば、いつか必ず勝てます。

リバーシの盤面は originator と呼ばれます。リアルな事象であり、アンドゥ機能以外は、それ単体で完全に成立する系です。

めもりーちゃん(のスマホ)の部分は caretaker です。適切なタイミングで写真を撮ってる、状況のお世話をする役です。

お世話の結果何ができるかというと、複数の memento である写真のスタックができます。写真は実際の物理盤面よりはるかに軽量なオブジェクトだというのがポイントです。そうでないと、いくらでもアンドゥできるほど大量には保存できませんから。

originator には普段使わない一括書き戻しメソッドがあります。それは caretaker に対してのみ、アクセスが公開されているのが望ましいでしょう。他の誰かが、過去実在しなかった状態に改ざんできてしまうのは危険ですから。

デスクトップ GUI のアンドゥ専用か関係ないなと思う方もいるかもしれませんが、最近は Web のユーザーインターフェースも、本当にやりますか確認から、即実行して間違っていたら「戻す」でキャンセルできるものも増えてきました。

それにみなさん、いつもメメントにお世話になってるじゃないですか。Git でいえばこれ、ワークスペースとリポジトリとコミットの関係ですよね。デザインパターンみたいだなと認識しておいて、損はないと思いますよ。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
12
Help us understand the problem. What are the problem?