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];
        }
    }
}());
复制代码

 

posted @   他乡踏雪  阅读(42)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2018-12-24 html基础知识总结
点击右上角即可分享
微信分享提示