迭代器模式/iterator模式/对象行为型模式
2016-09-22 17:50
369 查看
意图
又名:游标(Cursor);提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
动机
一个聚合对象,提供访问元素的方法,而有不暴露它的内部结构。如list,将对列表的访问和遍历从列表对象中分离出来并放入一个迭代器(iterator)中。迭代器定义了一个访问该列表元素的接口。迭代器负责跟踪当前元素。java实现要素:迭代器接口+迭代器+集合接口+集合实现
集合接口中定义,返回迭代器的接口方法集合对象中具体实现返回的迭代器
代码实现
//迭代器接口 public interface Iterator <T>{ boolean hasNext(); T next(); T get(int index); } //集合接口 public interface List <T>{ Iterator<T> iterator(); public T get(int i); public int size(); } //集合实现,采用内部类实现迭代器。内部类可以操作外部类数据(私有数据)。 public class MyList implements List<String>{ private String[] data = {"A","B","C","D","E"}; public Iterator<String> iterator(){ return new itr(); } public String get(int i){ return data[i]; } public int size(){ return data.length; } private class itr implements Iterator<String>{ private int pos=-1; @Override public boolean hasNext() { if (pos<data.length-1) { return true; } return false; } @Override public String next() { if (pos<data.length-1) { ++pos; } return data[pos]; } @Override public String get(int index) { if (index<data.length) { return data[pos]; } return ""; } } } //测试 public class Test { public static void main(String[] args) { MyList myList=new MyList(); Iterator<String> iterator=myList.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } } }
JDK中的迭代器模式
整个JCF,遍地都是.....
* @see Set * @see List * @see Map * @see SortedSet * @see SortedMap * @see HashSet * @see TreeSet * @see ArrayList * @see LinkedList * @see Vector * @see Collections * @see Arrays * @see AbstractCollection * @since 1.2 */ public interface Collection<E> extends Iterable<E> {
相关文章推荐
- 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
- 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
- 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
- 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
- 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
- 迭代器模式(Iterator)(对象行为型模式)
- 对象行为型模式——迭代器模式(Iterator)
- [导入]C#面向对象设计模式纵横谈(18):(行为型模式) Iterator 迭代器模式.zip(8.04 MB)
- 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
- C#面向对象模式设计第十八讲:Iterator 迭代器模式(行为型模式)
- 设计模式-行为型-迭代器模式(Iterator)
- 十九.行为型设计模式——Iterator Pattern(迭代器模式)
- [设计模式-行为型]迭代器模式(Iterator)
- 设计模式学习之迭代器模式(Iterator,行为型模式)(17)
- 设计模式17:Iterator 迭代器模式(行为型模式)
- [设计模式笔记]三. 行为型模式--18. Iterator模式(迭代器)对象行为型模式(一)
- C#面向对象设计模式纵横谈 学习笔记18 Iterator迭代器模式(行为型模式)
- 设计模式(十五):Iterator迭代器模式 -- 行为型模式
- 四、迭代器模式Iterator(行为型模式)
- (第Ⅳ部分 行为型模式篇) 第17章 迭代器模式(Iterator Pattern)