设计模式之迭代器模式

迭代器模式

迭代器模式(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
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容