主页 > 游戏开发  > 

行为型模式-迭代器模式(IteratorPattern)

行为型模式-迭代器模式(IteratorPattern)
行为型模式 - 迭代器模式 (Iterator Pattern)

迭代器模式提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。


import java.util.ArrayList; import java.util.List; // 迭代器接口 interface Iterator<T> { boolean hasNext(); T next(); } // 集合接口 interface Aggregate<T> { Iterator<T> createIterator(); } // 自定义集合类 class CustomList<T> implements Aggregate<T> { private List<T> items = new ArrayList<>(); public void add(T item) { items.add(item); } @Override public Iterator<T> createIterator() { return new CustomListIterator<>(items); } } // 自定义迭代器类 class CustomListIterator<T> implements Iterator<T> { private List<T> items; private int position = 0; public CustomListIterator(List<T> items) { this.items = items; } @Override public boolean hasNext() { return position < items.size(); } @Override public T next() { if (hasNext()) { return items.get(position++); } return null; } } // 客户端代码 public class CustomListExample { public static void main(String[] args) { CustomList<String> list = new CustomList<>(); list.add("苹果"); list.add("香蕉"); list.add("橙子"); Iterator<String> iterator = list.createIterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } }

在JDK源码中, 例如 ArrayList 的 Iterator List: 抽象聚合类 ArrayList: 具体聚合类 Iterator: 抽象迭代器 list.iterator(): 返回的是实现了 Iterator 接口的具体迭代器

标签:

行为型模式-迭代器模式(IteratorPattern)由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“行为型模式-迭代器模式(IteratorPattern)