zoukankan      html  css  js  c++  java
  • javaScript设计模式:迭代模式

    迭代模式的思想是必须有一个包含某种数据集合的容器,该数据集合可能存储在一个复杂数据结构内部,需要提供一种简单的能够访问数据结构中的每个元素。访问者并不需要了解数据容器中如何组织数据,所需要的就是取出单个数据进行工作。

    基于这样的模式需求,首先需要一个容器,然后需要提供一个访问数据元素的接口,并且这个访问接口具备一个迭代逻辑。

    同时为了更友好的放映迭代器的工作状态,需要一个反馈迭代进度的工具,并且还要具备恢复整个迭代状态的方法。

    示例:

    let agg = (function(){
        let index = 0,
            //数据容器
            data = [1,2,3,4,5],
            length = data.length;
        return {
            //迭代接口
            next:function(){
                let element;
                if(!this.hasNext){
                    return null;
                }
                element = data[index];
                index = index + 2;
                return element;
            },
            //迭代锁
            hasNext:function(){
                return index < length;
            },
            //恢复迭代状态的工具方法
            rewind:function(){
                index = 0;
            },
            //反应迭代进度的工具
            current:function(){
                return data[index];
            }
        }
    }());
    ——生命自会找到蓬勃之路。
  • 相关阅读:
    【ZJOI2007】棋盘制作 BZOJ1057
    【ZJOI2008】 树的统计 count
    【JSOI2007】麻将 bzoj 1028
    【省选】省选黄色预警
    【ZJOI2013】k大数查询 BZOJ 3110
    【HNOI2008】Cards BZOJ 1004
    【JSOI2010】Group 部落划分 BZOJ 1821
    NOIp2014 解题报告
    CH Round #56
    CH Round #55
  • 原文地址:https://www.cnblogs.com/ZheOneAndOnly/p/14638543.html
Copyright © 2011-2022 走看看