码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之行为型备忘录模式

时间:2017-09-01 13:38:16      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:blog   内容   复用   并保存   color   返回   .post   封装   执行   

在不破坏对象的封装性的前提下,在对象之外捕获并保存该对象内部状态以便日后对象使用或者对象恢复到以前的某个状态。

// Page备忘录类
var Page = function() {
  // 信息缓存对象
  var cache = {};
  return function(page, fn) {
    // 判断该页数据是否在缓存中
    if(cache[page]) {
      // 显示该页内容
      showPage(page, cache[page]);
      // 执行成功回调函数
      fn && fn();
    } else {
      // 否则异步请求
      $.post(‘./data/getNewsData.php‘, {
        page: page
      }, function(res) {
        // 成功返回
        if(res.errNo == 0) {
          showPage(page, res.data);
          cache[page] = res.data;
          fn && fn();
        } else {
          // 处理异常
        }
      })
    }
  }
}

上面代码可以看出Page缓存器内部缓存了每次请求回来的新闻数据,这样以后如果用户想回看某页新闻数据就不需要发送不必要的请求了。
备忘录模式最主要的任务是对现有的数据或状态进行缓存,为将类某个时刻使用或恢复做准备。但是当数据量过大时,会严重占用系统提供的资源,此时对缓存器的优化是很有必要的,复用率低的数据缓存下来是不值得的。

设计模式之行为型备忘录模式

标签:blog   内容   复用   并保存   color   返回   .post   封装   执行   

原文地址:http://www.cnblogs.com/camille666/p/design_pattern_behavior_memento.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!