`

【转】设计模式——迭代子模式(Iterator)

 
阅读更多

迭代器模式就是顺序访问聚集中的对象。一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。

这个思路和我们常用的一模一样,MyCollection中定义了集合的一些操作,MyIterator中定义了一系列迭代操作,且持有Collection实例,我们来看看实现

▲两个接口:

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());

}

}

}

 

输出:A B C D E

此处我们貌似模拟了一个集合类的过程,感觉是不是很爽?其实JDK中各个类也都是这些基本的东西,加一些设计模式,再加一些优化放到一起的,只要我们把这些东西学会了,掌握好了,我们也可以写出自己的集合类,甚至框架!

--------------------- 

作者:panzihao_beijing 

来源:CSDN 

原文:https://blog.csdn.net/PanZiHao_BeiJing/article/details/80429846 

版权声明:本文为博主原创文章,转载请附上博文链接!

分享到:
评论

相关推荐

    IteratorPattern 迭代设计模式

    迭代器模式(IteratorPattern)是设计模式中的一种行为模式,它提供了一种顺序访问聚合对象元素的方法,同时又不暴露其底层表示。这种模式允许我们遍历集合对象的元素,而无需暴露其内部结构。在Java、C#等面向对象...

    Iterator Pattern(迭代模式)

    迭代模式是一种行为设计模式,它允许我们通过统一的接口遍历集合对象的元素,而无需暴露其底层表示。在Java、C#等面向对象语言中,迭代器模式被广泛使用,尤其是在集合类库中,如ArrayList、LinkedList等。下面我们...

    23种 设计模式---面向对象的基本原则

    设计模式是软件工程中的一种最佳实践,它们是解决常见编程问题的经验总结,为软件开发提供了可复用的解决方案。在面向对象编程中,设计模式基于一些基本原则,这些原则构成了良好设计的基础。本篇将深入探讨23种设计...

    23个设计模式之一的迭代器模式-极客学院-java-课件代码,

    迭代器模式是软件设计模式中的行为模式之一,它提供了一种方法来顺序访问聚合对象的元素,而又不暴露其底层表示。在Java编程语言中,迭代器模式的应用尤为广泛,尤其是在处理集合类如ArrayList、LinkedList等时。这...

    java设计模式--迭代器设计模式.docx

    迭代器模式是软件设计模式中的一种行为模式,其主要目的是为了在不暴露聚合对象内部结构的情况下,提供一种顺序访问聚合对象中各个元素的方式。在Java中,迭代器模式被广泛应用于集合类,如ArrayList、LinkedList等...

    设计模式PPT---25种设计模式详解

    这份名为“设计模式PPT——25种设计模式详解”的资料,显然是一个深入探讨设计模式的教程,它通过PDF格式对25种主要的设计模式进行了详尽的阐述。 首先,我们要理解设计模式的基本概念。设计模式不是代码,而是一种...

    软件设计模式作业+答案

    软件设计模式和软件体系结构知识点总结 software design patterns and software architecture knowledge points summary 创建型软件设计模式: 工厂模式(Factory Pattern):符合开闭原则,提供了一种创建对象的...

    设计模式C++版

    设计模式C++版文档主要聚焦于面向对象设计与分析的核心——设计模式,并以C++语言实现为示范。这份文档详尽阐述了23种GoF(Gang of Four)设计模式,并结合具体的C++源码示例,旨在帮助读者深入理解并掌握这些设计...

    设计模式精解-GoF 23种设计模式解析附C++实现源码.pdf

    ### 设计模式精解——GoF 23种设计模式解析及C++实现源码 #### 0. 引言 设计模式是软件工程领域的一个重要概念,它为解决特定问题提供了一套标准的解决方案。《设计模式精解——GoF 23种设计模式解析及C++实现源码...

    深入浅出设计模式(中文版电子版)

    1.1什么是设计模式 2 1.2设计模式的作用 3 1.3GRASP模式的分类 4 1.4GoF设计模式的分类 4 1.5模式的学习阶段 6 第2章负责任地设计对象——GRASP 9 2.1InformationExpert(信息专家) 11 2.2Creator(创造者)...

    设计模式 让你轻松理解设计模式,提高开发效率

    外观模式是一种结构型设计模式,它为子系统中的一组接口提供一个一致的界面,该模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。文章中提到的“Nikon相机”,通过外观模式为复杂的摄影功能提供了一个...

    PHP设计模式之迭代器模式的深入解析

    迭代器模式(Iterator Pattern)是一种行为设计模式,它提供了一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。PHP作为一门面向对象的编程语言,其标准库(SPL)中就内置了对迭代器模式...

    23种java设计模式.pdf

    " JAVA 设计模式概述" JAVA 设计模式是指在软件设计过程中,为了提高代码的可维护性、灵活性和可扩展性所使用的一些惯用解决方案。JAVA 设计模式可以分为三种:创建模式、结构模式和行为模式。 1. 创建模式 创建...

    Java设计模式之禅

    《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...

    java 23种设计模式及具体例子

    * 迭代子模式(Iterator) * 责任链模式(Chain of Responsibility) * 命令模式(Command) * 备忘录模式(Memento) * 状态模式(State) * 访问者模式(Visitor) * 中介者模式(Mediator) * 解释器模式...

    Java设计模式菜鸟系列教程

    外观模式是一种结构型设计模式,提供了一种简化了的接口来访问一个复杂的子系统。它可以应用于框架设计、 GUI 组件创建、数据库访问等场景。 10. 模板方法模式(Template Method Pattern) 模板方法模式是一种行为...

    设计模式--可复用面向对象软件的基础(中文)

    《设计模式——可复用面向对象软件的基础》是一本经典的著作,它深入探讨了如何通过设计模式来构建更优秀的软件系统。 书中的内容可能涵盖了以下主要设计模式: 1. **创建型模式**:这一类模式关注于对象的创建...

Global site tag (gtag.js) - Google Analytics