迭代器模式
1.介绍
概念
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。
迭代器模式属于行为型模式。
主要作用
提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。
解决的问题
不同的方式来遍历整个整合对象。
使用场景
1、访问一个聚合对象的内容而无须暴露它的内部表示。 2、需要为聚合对象提供多种遍历方式。 3、为遍历不同的聚合结构提供一个统一的接口。
(引用自菜鸟教程)
2.实现
背景
类UsernameList用来储存用户的姓名,利用迭代器模式创建一个迭代器类用来遍历UsernameList。
实现步骤
1.创建Iterator接口
public interface Iterator {
public boolean hasNext();
public Object next();
}
2.创建Container接口
public interface Container {
public Iterator getIterator();
}
3.创建USernameList
public class UsernameList implements Container{
private String[] usernames = {"zhangsan", "lisi", "wangwu"};
@Override
public Iterator getIterator() {
return new UserIterator(usernames);
}
}
4. 创建UserIterator类
public class UserIterator implements Iterator{
String[] usernames;
int index;
public UserIterator(String[] usernames) {
this.usernames = usernames;
}
@Override
public boolean hasNext() {
if (index < usernames.length) {
return true;
}
return false;
}
@Override
public Object next() {
if (index < usernames.length) {
return usernames[index++];
}
return null;
}
}
5.创建测试类
public class IteratorPatternDemo {
public static void main(String[] args) {
UsernameList usernameList = new UsernameList();
Iterator iterator = usernameList.getIterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
6.运行结果
zhangsan
lisi
wangwu