迭代子模式

概述:

Java对迭代子模式的支持来自于Java聚集的需要,一个聚集需要向外界提供遍历聚集元素的方法。提供一种方法来让别人可以访问它的元素,而又不需要暴露它的内部结构

迭代器模式:使用迭代器模式来提供对聚合对象的统一存取,即提供一个外部的迭代器来对聚合对象进行访问和遍历 , 而又不需暴露该对象的内部结构。又叫做游标(Cursor)模式 。

适用性

迭代器模式可用来:

? 访问一个聚合对象的内容而无需暴露它的内部表示。

? 需要为聚合对象提供多种遍历方式。

? 为遍历不同的聚合结构提供一个统一的接口 (即, 支持多态迭代)

抽象迭代器(Iterator): 迭代器定义访问和遍历元素的接口。

具体迭代器(ConcreteIterator):  具体迭代器实现迭代器Iterator接口。对该聚合遍历时跟踪当前位置。

抽象聚合类(Aggregate): 聚合定义创建相应迭代器对象的接口。

具体聚合类(ConcreteAggregate): 体聚合实现创建相应迭代器的接口,该操作返回ConcreteIterator的一个适当的实例。

1)聚合是一个管理和组织数据对象的数据结构。

2)聚合对象主要拥有两个职责:一是存储内部数据;二是遍历内部数据。

3)存储数据是聚合对象最基本的职责。

4)将遍历聚合对象中数据的行为提取出来,封装到一个迭代器中,通过专门的迭代器来遍历聚合对象的内部数据,这就是迭代器模式的本质。迭代器模式是“单一职责原则”的完美体现。

时间: 2024-08-27 10:38:22

迭代子模式的相关文章

迭代子模式(Iterator)

迭代子(Iterator)模式又叫游标模式,是对象的行为模式.迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象. 迭代子模式涉及到以下几个角色: 抽象迭代子(Iterator)角色:此抽象角色定义出遍历元素所需的接口. 具体迭代子(ConcreteIterator)角色:此角色实现了Iterator接口,并保持迭代过程中的游标位置. 聚集(Aggregate)角色:此抽象角色给出创建迭代子(Iterator)对象的接口. 具体聚集(ConcreteAggregate)角色:实现了

《JAVA与模式》之迭代子模式

迭代子模式又叫游标(Cursor)模式,是对象的行为模式.迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation). 聚集和JAVA聚集 多个对象聚在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对象.聚集依赖于聚集结构的抽象化,具有复杂化和多样性.数组就是最基本的聚集,也是其他的JAVA聚集对象的设计基础. JAVA聚集对象是实现了共同的java.util.Collection接口的对象,是JAVA语言

Java设计模式之迭代子模式

本文继续介绍23种设计模式系列之观察者模式. 定义 在软件构建过程中,集合对象内部结构常常变化各异,但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素:同时这种"透明遍历"也为同一种算法在多种集合对象上进行操作提供了可能. 使用面向对象技术将这种遍历机制抽象为"迭代器对象"为"应对变化中的集合对象"提供了一种优雅的方式. 迭代子(Iterator)模式又叫游标(Cursor)模式,是对象的行为模式.迭

java设计模式----迭代子模式

顺序访问聚集中的对象,主要用于集合中.一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问. 迭代子模式为遍历集合提供了统一的接口方法.从而使得客户端不需要知道聚集的内部结构就能就能对聚集进行遍历等操作.Iterator模式是用于遍历集合类的标准访问方法.它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构. 例如,如果没有使用Iterator,遍历一个数组的方法是使用索引: for(int i=0; i<array.size(); i++) {

设计模式 之 迭代子模式

设计模式 之 迭代子模式 迭代子模式又叫游标(Cursor)模式,是对象的行为模式.迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象 --阎宏博士的<JAVA与模式> 例:集合的遍历 第一版:实现数组集合和链表集合 集合接口 public interface MyCollection { void add(Object o); int size(); } 数组集合 public class MyArrayList implements MyCollection { privat

IteratorPattern(迭代子模式)

/** * 迭代子模式 * @author TMAC-J * 聚合:某一类对象的集合 * 迭代:行为方式,用来处理聚合 * 是一种行为模式,用于将聚合本身和操作聚合的行为分离 * Java中的COLLECT就是一种聚合,Iterator类是一种迭代 * 好处:分开了行为和本身,便于行为的扩展和本身的维护,符合开闭原则 * 分为白盒(宽接口)和黑盒(窄接口) * 白盒:白盒提供了一些可以访问聚合内部的方法,如getSize,add,remove等等 * 黑盒:不提供或者提供很少外部访问的方法,对外

[设计模式]迭代子模式 Iterator

迭代子模式又叫做游标cursor模式,是对象的行为模式.迭代子模式可以顺序的访问一个聚集中的元素而不必暴露聚集的内部表象. 迭代子模式被广泛的应用在Java语言的API中的几个设计模式之一.在Java语言的聚集(Collection)框架中,广泛使用迭代子模式来便利聚集的元素. 聚集与Java聚集 多个对象聚集在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对象.数组就是最基本的聚集,也是其他Java聚集对象的设计基础. Java Collection对象是实现

迭代模式

迭代子模式又叫游标(Cursor)模式,是对象的行为模式.迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation). 聚集和JAVA聚集 多个对象聚在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对象.聚集依赖于聚集结构的抽象化,具有复杂化和多样性.数组就是最基本的聚集,也是其他的JAVA聚集对象的设计基础. JAVA聚集对象是实现了共同的java.util.Collection接口的对象,是JAVA语言

《Java设计模式》之迭代模式

迭代子模式又叫游标(Cursor)模式,是对象的行为模式.迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation). 聚集和JAVA聚集 多个对象聚在一起形成的总体称之为聚集(Aggregate),聚集对象是能够包容一组对象的容器对象.聚集依赖于聚集结构的抽象化,具有复杂化和多样性.数组就是最基本的聚集,也是其他的JAVA聚集对象的设计基础. JAVA聚集对象是实现了共同的java.util.Collection接口的对象,是JAVA语言