您好,登錄后才能下訂單哦!
這篇文章主要講解了如何使用javascript中的迭代器模式,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
介紹:迭代器模式是一種使用頻率非常高的設計模式,通過引入迭代器,可以將數據的遍歷功能從聚合對象中分離出來。迭代器模式用于順序訪問集合對象的元素,不需要知道集合對象的底層表示。
定義:提供一種方法來訪問聚合對象,而不用暴露這個對象的內部表示,其別名為游標(Cursor)。迭代器模式是一種對象行為型模式。
場景:我們做一個百家姓的迭代器
示例:
function NameRepository(){ var names = ['趙','錢','孫','李']; this.getIterator = function(){ return new NameIterator(); } function NameIterator(){ var index = 0; //判斷是否存在下一個元素 this.hasNext = function(){ return index < names.length; } //將游標指向第一個元素 this.first = function(){ index = 0; } //獲取游標指向的當前元素 this.currentItem = function(){ return names[index]; } this.next = function(){ if(this.hasNext()){ return names[index++] } return null; } } } var nameRepository = new NameRepository(); for(var iter = nameRepository.getIterator(); iter.hasNext();){ console.log(iter.next()) } // 趙 // 錢 // 孫 // 李
例子中NameIterator稱為具體迭代器,它實現了對聚合對象的遍歷,通過游標index來記錄聚合對象當前位置,游標通常為一個表示位置的非負整數。
需要注意的是迭代器的接口設計非常重要,一方面要充分滿足各種遍歷操作的要求,另一方面又不能包含太多方法。
迭代器模式總結:
優點:
* 支持以不同的方式遍歷一個聚合對象,在同一個聚合對象上可以定義多種遍歷方式
* 迭代器簡化了聚合類,原有的聚合對象不需要自行提供數據遍歷方法。
缺點:
* 迭代器模式將存儲數據和遍歷數據的職責分離,一定程度增加了系統的復雜性
* 迭代器設計難度較大,需要充分考慮可擴展性。
適用場景:
* 訪問一個聚合對象的內容而無須暴露它的內部表示。
* 需要為一個聚合對象提供多種遍歷方式
* 為便利不同的聚合結構提供一個統一的接口,為不同的聚合結構實現不同的遍歷方式。
看完上述內容,是不是對如何使用javascript中的迭代器模式有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。