备忘录模式

    很多软件如制图、文字编辑软件,都需要记住一些历史状态来提供撤销的功能。备忘录模式就是为这种情况而生的。简单结构如下:
    备忘录模式 (Memento Pattern) :在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式,其别名为 Token
    简单结构如下:
     备忘录模式_第1张图片
    Originator:原发器,要被“备忘”的类。他可以创建一个备忘录,或恢复到一个指定备忘录的状态。
    Memento:备忘录。存储某一历史状态。
    Caretaker:备忘录管理者。负责存储和提供备忘录。
    这里备忘录对象要做到只能被原发器查看和操作。Java里可以用在用一个包下或内部类实现。这样,原发器就可以创建备忘录交给管理者保存,通过管理者提供的历史备忘录,原发器还可以恢复某一历史状态。管理者的内部数据结构可以灵活多变,例如只是一个备忘录对象的引用,那就只能存储一个历史状态。数组就可以 存放一系列线性的状态,树形结构则可以存储带分支的历史状态,等等。而且,恢复到历史状态后,还可以在此“反悔”,向较近的状态靠拢。
    总结:
        优点:提供恢复机制,满足一些特定的需求
        缺点:资源消耗大。    
        适用:保存对象某时刻的全部或部分状态,以便需要时还能恢复。

你可能感兴趣的:(备忘录模式)