阿西河

所有教程

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

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      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的教程都有!

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

      目录
      目录