提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示
主要解决:不同的方式来遍历整个整合对象。
何时使用:遍历一个聚合对象。
如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象。
关键代码:定义接口:hasNext, next。
class Container{
constructor(list){
this.list = list;
}
getIterator(){
return new Iterator(this)
}
}
class Iterator{
constructor(container){
this.list = container.list;
this.index = 0;
}
hasNext(){
return this.index < this.list.length
}
next(){
if(this.hasNext()){
return this.list[this.index++]
}
return null
}
}
const container = new Container([1,2,3,4,5])
const iterator = new Iterator(container);
while(iterator.hasNext()){
console.log(iterator.next())
}
总结
- 好用