阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

    教程列表

    数据库
    抓包专区
    测试专区

    CoffeeScript 备忘录模式

    备忘录模式

    问题

    你想预测对一个对象做出改变后的反应。

    解决方案

    使用备忘录模式(Memento Pattern)来跟踪一个对象的变化。使用这个模式的类会输出一个存储在其他地方的备忘录对象。

    如果你的应用程序可以让用户编辑文本文件,例如,他们可能想要撤销上一个动作。你可以在用户改变文件之前保存文件现有的状态,然后回滚到上一个位置。

    class PreserveableText
        class Memento
            constructor: (@text) ->
    
        constructor: (@text) ->
        save: (newText) ->
            memento = new Memento @text
            @text = newText
            memento
        restore: (memento) ->
            @text = memento.text
    
    pt = new PreserveableText "The original string"
    pt.text # => "The original string"
    
    memento = pt.save "A new string"
    pt.text # => "A new string"
    
    pt.save "Yet another string"
    pt.text # => "Yet another string"
    
    pt.restore memento
    pt.text # => "The original string"
    

    讨论

    备忘录对象由 PreserveableText#save 返回,为了安全保护,分别地存储着重要的状态信息。你可以序列化备忘录以便来保证硬盘中的“撤销”缓冲或者是那些被编辑的图片等数据密集型对象。

    卖前端学习教程

    只需几十元,就能买到培训班的内部教程!开启高薪之路!

    零基础小白阿里P7的教程都有!

    同时长期收购所有培训班的前端教程

    目录
    目录