Java Iterator Pattern(迭代器模式)
2017-09-29 01:07
330 查看
Java Iterator Pattern(迭代器模式)
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。关键代码:定义接口:hasNext, next。
优点: 1、它支持以不同的方式遍历一个聚合对象。 2、迭代器简化了聚合类。 3、在同一个聚合上可以有多个遍历。 4、在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。
缺点:由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。
创建接口
/** * 1. 创建接口 * @author mazaiting */ public interface Iterator { /** * 是否有一个 */ boolean hasNext(); /** * 下一个对象 * @return */ Object next(); } /** * 1. 创建接口 * @author mazaiting */ public interface Container { /** * 获取迭代器 */ public Iterator getIterator(); }
创建实现了 Container 接口的实体类。该类有实现了 Iterator 接口的内部类 NameIterator。
/** * 2. 创建实现了 Container 接口的实体类。该类有实现了 * Iterator 接口的内部类 NameIterator。 * @author mazaiting */ public class NameRepository implements Container{ public String names[] = {"Robert" , "John" ,"Julie" , "Lora"}; public Iterator getIterator() { return new NameIterator(); } private class NameIterator implements Iterator{ int index = 0; public boolean hasNext() { if (index < names.length) { return true; } return false; } public Object next() { if (this.hasNext()) { return names[index++]; } return null; } } }
使用 NameRepository 来获取迭代器,并打印名字。
/** * 3. 使用 NameRepository 来获取迭代器,并打印名字。 * @author mazaiting */ public class Client { public static void main(String[] args) { NameRepository nameRepository = new NameRepository(); for (Iterator iterator = nameRepository.getIterator();iterator.hasNext();) { String name = (String) iterator.next(); System.out.println("Name: " + name); } } }
相关文章推荐
- java设计模式---迭代器模式(iterator pattern)
- 设计模式 - 迭代器模式(iterator pattern) Java 迭代器(Iterator) 详解
- JAVA设计模式之 迭代器模式【Iterator Pattern】
- Java设计模式——迭代器模式(Iterator Pattern)
- java设计模式——迭代器模式(Iterator Pattern)
- 设计模式学习笔记---迭代器模式iterator pattern(Java版)
- Java设计模式--迭代器模式【Iterator Pattern】
- java_设计模式_迭代器模式_Iterator Pattern(2016-08-12)
- Java设计模式——迭代器模式(Iterator Pattern)
- 迭代器模式(Iterator Pattern)
- .NET设计模式-迭代器模式(Iterator Pattern)
- 迭代器模式(Iterator Pattern)
- java设计模式-迭代器模式(Iterator)
- Net设计模式实例之迭代器模式(Iterator Pattern)
- 迭代器模式(Iterator Pattern)
- 设计模式之迭代器模式(Iterator Pattern)
- 设计模式迭代器模式(IteratorPattern)
- 设计模式 - 迭代器模式(iterator pattern) 扩展 详解
- 设计模式总结之Iterator Pattern(迭代器模式)
- 迭代器模式(Iterator Pattern)