给我写一段迭代器模式的代码
时间: 2024-04-29 07:24:49 浏览: 15
好的,以下是迭代器模式的代码示例:
```
// 定义迭代器接口
interface Iterator {
next(): any;
hasNext(): boolean;
}
// 实现具体迭代器
class ArrayIterator implements Iterator {
private array: Array<any>;
private index: number;
constructor(array: Array<any>) {
this.array = array;
this.index = 0;
}
next() {
let value = this.array[this.index];
this.index++;
return value;
}
hasNext() {
return this.index < this.array.length;
}
}
// 定义可迭代对象接口
interface Iterable {
iterator(): Iterator;
}
// 实现具体可迭代对象
class ArrayContainer implements Iterable {
private array: Array<any>;
constructor(array: Array<any>) {
this.array = array;
}
iterator() {
return new ArrayIterator(this.array);
}
}
// 使用示例
let array = [1, 2, 3, 4, 5];
let container = new ArrayContainer(array);
let iterator = container.iterator();
while (iterator.hasNext()) {
console.log(iterator.next());
}
```
以上代码演示了迭代器模式的基本实现方式,通过抽象出迭代器和可迭代对象两个接口来分离数据结构和遍历逻辑,从而增强可复用性和灵活性。