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

Posted 专注前端开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之行为型备忘录模式相关的知识,希望对你有一定的参考价值。

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

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

以上是关于设计模式之行为型备忘录模式的主要内容,如果未能解决你的问题,请参考以下文章

JAVA SCRIPT设计模式--行为型--设计模式之Memnto备忘录模式(18)

JAVA SCRIPT设计模式--行为型--设计模式之Memnto备忘录模式(18)

4 行为型模式之- 备忘录模式

22行为型模式之备忘录模式

行为型模式之备忘录模式

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