zoukankan      html  css  js  c++  java
  • 设计模式之行为型备忘录模式

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

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

  • 相关阅读:
    git 账号密码
    sql server 备份
    计算经纬度的两点之间的距离
    redis 安装
    webapi 可空参数
    Asp.Net MVC4 使用Unity 实现依赖注入
    sublime主题推荐
    分解质数因子
    如何在sublime+chrome中调试php代码?
    php的mysql语句里变量加不加单引号问题
  • 原文地址:https://www.cnblogs.com/camille666/p/design_pattern_behavior_memento.html
Copyright © 2011-2022 走看看