美文网首页
设计模式之迭代器模式

设计模式之迭代器模式

作者: Binaryify | 来源:发表于2016-03-26 23:53 被阅读42次

    迭代器模式

    迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。

    模式作用:

    1. 为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行操作
    2. 对于集合内部结果常常变化各异,我们不想暴露其内部结构的话,但又想让客户代码透明地访问其中的元素,这种情况下我们可以使用迭代器模式

    注意事项:

    1. 一般的迭代,我们至少要有2个方法,hasNext()和Next(),这样才能做到遍历所有对象
    2. 遍历的同时更改迭代器所在的集合结构可能会导致问题(比如C#的foreach不允许修改item)

    例子:

    var arr = ["1", "2", "3"];
    var diedai = (function() {
        var length = arr.length,
            index = 0;
        return {
            hasNext: function() {
                return index < length;
            },
            next: function() {
                var data = arr[index];
                index = index + 1;
                return data;
            },
            reset: function() {
                index = 0;
            }
    
        }
    })();
    while (diedai.hasNext()) {
        console.log(diedai.next()) //1,2,3
    }
    
    

    相关文章

      网友评论

          本文标题:设计模式之迭代器模式

          本文链接:https://www.haomeiwen.com/subject/jyndlttx.html