zoukankan      html  css  js  c++  java
  • 模式学习(四)-迭代器

    var agg = (function(){
            var index = 0,
                data = [1,2,3,4,5],
                length = data.length;
    
            return {
                next : function(){
                    var element;
                    if(!this.hasNext){
                        return null;
                    }
    
                    element = data[index];
                    index = index + 2;
                    return element;
                },
                hasNext : function(){
                    return index < length;
                },
                rewind : function(){// rewind : 倒带 重置指针到初始位置
                    index = 0;
                },
                current : function(){
                    return data[index];
                }
            }
        })();
        // 这个循环记录1,然后3,接着5
        while(agg.hasNext()){
            console.log(agg.next());// 1  3  5 
        }
    
        // 回退
        agg.rewind();
        console.log(agg.current());// 1

    对于集合内部结果常常变化各异,我们不想暴露其内部结构的话,但又响让客户代码透明底访问其中的元素,这种情况下我们可以使用迭代器模式。

  • 相关阅读:
    SVN安装
    清楚OpenGL代码中的列主矩阵和行主矩阵
    UVA-122(Trees on the level)
    POJ
    POJ-1797(Heavy Transportation)
    POJ
    POJ
    最短路经---SPFA算法
    POJ
    HDU
  • 原文地址:https://www.cnblogs.com/chuyu/p/3489548.html
Copyright © 2011-2022 走看看