javaScript設計模式:迭代模式
阿新 • • 發佈:2021-12-24
迭代模式的思想是必須有一個包含某種資料集合的容器,該資料集合可能儲存在一個複雜資料結構內部,需要提供一種簡單的能夠訪問資料結構中的每個元素。訪問者並不需要了解資料容器中如何組織資料,所需要的就是取出單個數據進行工作。
基於這樣的模式需求,首先需要一個容器,然後需要提供一個訪問資料元素的介面,並且這個訪問介面具備一個迭代邏輯。
同時為了更友好的放映迭代器的工作狀態,需要一個反饋迭代進度的工具,並且還要具備恢復整個迭代狀態的方法。
示例:
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]; } } }());