一、核心思想
迭代子模式又称Cursor模式,是对象的行为模式。迭代子模式可以顺序地访问聚集中的对象而不必显露聚集的内部对象。
包含:聚集对象 和 迭代器对象。
关系图:
代码:
两个接口:
- public interface Collection {
- public Iterator iterator();
- /*取得集合元素*/
- public Object get(int i);
- /*取得集合大小*/
- public int size();
- }
- public interface Iterator {
- //前移
- public Object previous();
- //后移
- public Object next();
- public boolean hasNext();
- //取得第一个元素
- public Object first();
- }
两个实现:
- public class MyCollection implements Collection {
- public String string[] = {"A","B","C","D","E"};
- @Override
- public Iterator iterator() {
- return new MyIterator(this);
- }
- @Override
- public Object get(int i) {
- return string[i];
- }
- @Override
- public int size() {
- return string.length;
- }
- }
- public class MyIterator implements Iterator {
- private Collection collection;
- private int pos = -1;
- public MyIterator(Collection collection){
- this.collection = collection;
- }
- @Override
- public Object previous() {
- if(pos > 0){
- pos--;
- }
- return collection.get(pos);
- }
- @Override
- public Object next() {
- if(pos<collection.size()-1){
- pos++;
- }
- return collection.get(pos);
- }
- @Override
- public boolean hasNext() {
- if(pos<collection.size()-1){
- return true;
- }else{
- return false;
- }
- }
- @Override
- public Object first() {
- pos = 0;
- return collection.get(pos);
- }
- }
测试类:
- public class Test {
- public static void main(String[] args) {
- Collection collection = new MyCollection();
- Iterator it = collection.iterator();
- while(it.hasNext()){
- System.out.println(it.next());
- }
- }
- }
二、何时使用
迭代子的作用就是用来方便查询一个集合中的数据。
优点:
简化了聚集的界面
因为每一个聚集对象可以有多个迭代子对象,每个迭代子状态时独立的。
由于遍历算法被封装在迭代子角色里,因此迭代的算法可以独立于聚集对象。
三、java中的应用
Java集合类迭代子Iterator 和 Enumeration
JDBC查询数据集迭代子ResultSet
JSP分页
相关推荐
迭代器模式(IteratorPattern)是设计模式中的一种行为模式,它提供了一种顺序访问聚合对象元素的方法,同时又不暴露其底层表示。这种模式允许我们遍历集合对象的元素,而无需暴露其内部结构。在Java、C#等面向对象...
在Java中,迭代器模式的实现通常使用`Iterable`接口和`Iterator`接口。`Iterable`接口定义了一个`iterator()`方法,返回一个`Iterator`实例。`Iterator`接口则包含`hasNext()`和`next()`方法。 ```java public ...
22.迭代子模式Iterator展示了如何在不暴露容器内部结构的情况下,通过迭代器遍历各种类型的容器,实现了泛型遍历,这是C++标准库中容器常用的设计。 3. **命令模式(Command Pattern)**:命令模式将请求封装为一个...
在这个主题中,我们主要探讨了如何利用组合模式(Composite Pattern)构建二叉树,并通过迭代器模式(Iterator Pattern)来实现对树的遍历,包括前序、中序和后序遍历。这些是设计模式中的经典应用,对于理解和掌握...
`Collection`接口扩展了迭代器的概念,它的子接口如`List`、`Set`都提供了`iterator()`方法来返回一个迭代器实例。 迭代器模式有以下优点: 1. **分离遍历操作和聚合对象**:迭代器模式使得可以独立于聚合对象改变...
迭代子模式 Iterator ChainOfResponsibility CommandPattern 命令模式 Memento 备忘录模式 行为型模式end 创建型模式start 共五种,我把抽象工厂和工厂模式合在一起了 BuildPattern ...
迭代子模式(Iterator Pattern)是一种行为设计模式,它允许我们顺序访问聚合对象的元素,而无需暴露其底层表示。在Java中,迭代器模式广泛应用于集合框架,如List、Set和Map等接口的实现。 在Java中,迭代器模式的...
迭代器模式(Iterator Pattern)是一种行为设计模式,它提供了一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。PHP作为一门面向对象的编程语言,其标准库(SPL)中就内置了对迭代器模式...
Java与模式:迭代子(Iterator)模式、合成(Composite)模式、抽象工厂模式等
迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( ...
迭代器模式是软件设计模式中的一种行为模式,其主要目的是为了在不暴露聚合对象内部结构的情况下,提供一种顺序访问聚合对象中各个元素的方式。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等...
迭代器设计模式遵循了“访问者”模式的原则,使得代码更加灵活和可维护。以下是对Java中Iterator的详细解释: 1. **接口定义**: Java的迭代器接口位于`java.util`包中,它提供了遍历集合元素的基本方法。迭代器的...
在这个话题中,我们将深入探讨如何利用组合模式(Composite Pattern)和迭代模式(Iterator Pattern)来构建和遍历树结构。 **组合模式**是面向对象设计模式的一种,它允许我们处理部分和整体的关系。在树形结构中...
迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( ...
在MyBatis框架中,迭代器模式被用来遍历和访问SqlMapConfig.xml或MapperXML文件中的属性和子节点,使得程序员可以方便地处理配置文件中的数据。 在MyBatis中,`PropertyTokenizer`类实现了`Iterator...
迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( ...
迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( ...
迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( ...
迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( ...
迭代子模式( Iterator ) 责任链模式( Chain of Responsibility ) 命令模式( Command ) 备忘录模式( Memento ) 状态模式( State ) 访问者模式( Visitor ) 中介者模式( Mediator ) 解释器模式( ...