0%

设计模式 - 行为型模式 - 迭代器模式

设计模式

设计模式分为创建型模式、结构型模式和行为型模式。
创建型模式:创建对象。
结构型模式:把复杂结构分解为多个类,分解的是类本身(包括算法和属性)。
行为型模式:把复杂算法分解到多个类,分解的是算法。

UML

迭代器模式 UML

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public interface Aggregate {
Iterator createIterator();
}

public interface Iterator {
boolean hasNext();
Object next();
}

public class ConcreteAggregate implements Aggregate {
private Object[] objects;

public ConcreteAggregate(Object[] objects) {
this.objects = objects;
}

@Override
public Iterator createIterator() {
return new ConcreteIterator();
}

private class ConcreteIterator implements Iterator {
private int index = 0;

@Override
public boolean hasNext() {
return index < objects.length;
}

@Override
public Object next() {
return objects[index++];
}
}
}

public class Client {
public static void main(String[] args) {
Aggregate aggregate = new ConcreteAggregate(new Object[]{1, 2, 3, 4, 5});
Iterator iterator = aggregate.createIterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}