如何在Java中设计一个支持多态遍历的迭代器模式,并给出具体实现示例?
时间: 2024-11-11 15:27:44 浏览: 6
迭代器模式允许我们通过定义标准操作来顺序访问聚合对象的元素,而不暴露其内部结构。在Java中实现这一模式,首先需要定义一个迭代器接口,该接口至少包含`next()`和`hasNext()`方法。具体迭代器类将实现这个接口,并维护遍历状态。聚合类则需要提供一个方法来返回迭代器的实例。下面是具体的实现步骤和代码示例:
参考资源链接:[Java设计模式:行为型模式——迭代器模式详解](https://wenku.csdn.net/doc/60qet63g30?spm=1055.2569.3001.10343)
1. 定义迭代器接口(Iterator)和具体迭代器类(ConcreteIterator):
```java
interface Iterator {
boolean hasNext();
Object next();
}
class ConcreteIterator implements Iterator {
private ConcreteAggregate aggregate;
private int cursor;
public ConcreteIterator(ConcreteAggregate aggregate) {
this.aggregate = aggregate;
}
@Override
public boolean hasNext() {
// 判断是否还有下一个元素
}
@Override
public Object next() {
// 返回下一个元素并更新游标
}
}
```
2. 定义聚合接口(Aggregate)和具体聚合类(ConcreteAggregate):
```java
interface Aggregate {
Iterator iterator();
}
class ConcreteAggregate implements Aggregate {
private List<Object> items = new ArrayList<>();
public void add(Object item) {
items.add(item);
}
@Override
public Iterator iterator() {
return new ConcreteIterator(this);
}
}
```
3. 使用示例:
```java
public class IteratorDemo {
public static void main(String[] args) {
ConcreteAggregate aggregate = new ConcreteAggregate();
aggregate.add(
参考资源链接:[Java设计模式:行为型模式——迭代器模式详解](https://wenku.csdn.net/doc/60qet63g30?spm=1055.2569.3001.10343)
阅读全文