Android编程设计模式之迭代器模式详解编程设计模式之迭代器模式详解
主要介绍了Android编程设计模式之迭代器模式,结合实例形式详细分析了Android迭代器模式的概念、原理、应
用场景、用法及相关操作注意事项,需要的朋友可以参考下
本文实例讲述了Android编程设计模式之迭代器模式。分享给大家供大家参考,具体如下:
一、介绍一、介绍
迭代器模式(Iterator Pattern)又称为游标(Cursor)模式,是行为型设计模式之一。迭代器模式算是一个比较古老的设计模
式,其源于对容器的访问,比如Java中的List、Map、数组等,我们知道对容器对象的访问必然会涉及遍历算法,我们可以将
遍历的方法封装在容器中,或者不提供遍历方法。如果我们将遍历的方法封装到容器中,那么对于容器类来说就承担了过多的
功能,容器类不仅要维护自身内部的数据元素而且还要对外提供遍历的接口方法,因为遍历状态的存储问题还不能对同一个容
器同时进行多个遍历操作,如果我们不提供遍历方法而让使用者自己去实现,又会让容器的内部细节暴露无遗,正因于此,迭
代模式应运而生,在客户访问类与容器体之间插入了一个第三者——迭代器,很好地解决了上面所述的弊端。
二、定义二、定义
提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。
三、使用场景三、使用场景
遍历一个容器对象。
四、迭代器模式的四、迭代器模式的UML类图类图
UML类图:类图:
通用模式代码:
迭代器接口:
public interface Iterator<T> {
/**
* 是否还有下一个元素
* @return true表示有,false表示没有
**/
boolean hasNext();
/**
* 返回当前位置的元素并将位置移至下一位
**/
T next();
}
具体迭代器类:
public class ConcreteIterator<T> implements Iterator<T>{
private List<T> list;
private int cursor = 0;
public ConcreteIterator(List<T> list) {
this.list = list;
}
@Override
public boolean hasNext() {
return cursor != list.size();
}