设计模式(23)---迭代器模式

定义:

迭代器模式,提供了一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。

因为迭代器模式的广泛运用,现在高级语言如c#,java等本身已经把这个模式封装在语言当中。例如:c#中的foreach in。

因此此处暂不对迭代器模式做详细的介绍,下面简单讲述在书中看到的一些基础知识:

IEumerator支持对非泛型集合的简单迭代接口。

public interface IEumerator
    {
        object Current { get; }
        bool MoveNext();
        void Reset();
    }

IEnumerable公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。

public interface IEnumerable
    {
        IEumerator GetEnumerator();
    }

简单举例:

IList<string> strList = new List<string>();
            strList.Add("a");
            strList.Add("c");
            strList .Add ("d");

            foreach (string item in strList)
            {
                Console.WriteLine("{0}", item);
            }
时间: 2025-01-06 15:15:42

设计模式(23)---迭代器模式的相关文章

Python进阶:设计模式之迭代器模式

在软件开发领域中,人们经常会用到这一个概念--"设计模式"(design pattern),它是一种针对软件设计的共性问题而提出的解决方案.在一本圣经级的书籍<设计模式:可复用面向对象软件的基础>(1991年,Design Patterns - Elements of Reusable Object-Oriented Software)中,它提出了23种设计模式.迭代器模式就是其中的一种,在各种编程语言中都得到了广泛的应用. 本文将谈谈 Python 中的迭代器模式,主要内

【设计模式】——迭代器模式

迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示.当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,或者你需要对聚集有多种方式遍历时,你就应该考虑用迭代器模式,为遍历不同的聚集结构提供如开始.下一个.是否结束.当前哪一项等统一接口. #include <iostream> #include <vector> using namespace std; typedef string object; //Iterato

设计模式之迭代器模式(Iterator)

1.定义 迭代器模式提供一种方法访问一个容器对象中的各个元素,而又不需暴露该对象的内部细节. 基本上没有人会单独写一个迭代器,除非是产品性质的开发. 2.通用类图 Iterator抽象迭代器:抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有固定的3个方法:first()获得第一个元素:next()访问下一个元素:isDone()是否已经访问到底部(Java 叫做hasNext()方法). ConcreteIterator具体迭代器:具体迭代器角色要实现迭代器接口,完成容器元素的遍历. Ag

2018.4.30 设计模式之迭代器模式

设计模式之迭代器模式 1.定义/概念 迭代器模式是Java和.Net编程环境中非常常用的设计模式.这种设计模式用于顺序访问集合对象的元素要知道集合对象的底层表示.迭代器模式属于行为型模式 迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示. 2.角色和定义 ● Iterator抽象迭代器 抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有固定的3个方法:first()获得第一个元素,next()访问下一个元素,isDone()是否已经访问

【Unity与23种设计模式】迭代器模式(Iterator)

GoF中定义: "在不知道集合内部细节的情况下,提供一个按序方法存取一个对象集合体的每一个单元." 迭代器模式由于经常使用到 已经被现代程序设计语言纳为标准语句或收录到标准函数库中 在C#中,经常使用泛型存储对象 当想按序存取这些泛型容器时,都会使用C#的foreach语句 foreach语句就是一个能顺序访问一个集合的方法 它便是C#语言内置的迭代器模式 当然 其他现代语言也提供了类似的语句

23种设计模式之迭代器模式(Iterator)

迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部表示.迭代器模式支持以不同的方式遍历一个聚合对象,复杂的聚合可用多种方法来进行遍历:允许在同一个聚合上可以有多个遍历,每个迭代器保持它自己的遍历状态,因此,可以同时进行多个遍历操作. 优点: 1)支持集合的不同遍历. 2)简化了集合的接口. 使用场景: 1)在不开发集合对象内部表示的前提下,访问集合对象内容. 2)支持集合对象的多重遍历. 3)为遍历集合中的不同结构提供了统一的接口. Iterator 模式

设计模式之迭代器模式(Iterator)摘录

23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于怎样创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化托付给还有一个对象.创建型模式有两个不断出现的主旋律.第一,它们都将关于该系统使用哪些详细的类的信息封装起来.第二,它们隐藏了这些类的实例是怎样被创建和放在一起的.整个系统关于这些对象所知道的是由抽象类所定义的接口.因此,创建型模式在什么被创建,谁创建它,它是怎样被创建的,

大话设计模式_迭代器模式(Java代码)

迭代器模式:提供一个方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示 简单描述:提供一个单独的接口遍历聚集类对象中的成员,以实现聚集对象的隐藏和内部数据供外部访问 大话设计模式中的截图: 我觉得以上面的图示进行编码会暴露ConcreteAggregate中的内部信息(ConcreteIerator可以访问聚集类中的成员,那表示其他类也可以和ConcreteIerator一样进行相同的访问),所以我以另外一种形式实现迭代器(即内部类的方式,和Java中的ArrayList类似) 代码

【GOF23设计模式】迭代器模式

来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_迭代器模式.JDK内置迭代器.内部类迭代器 1 package com.test.iterator; 2 /** 3 * 自定义的迭代器接口 4 */ 5 public interface MyIterator { 6 void first(); //将游标指向第一个元素 7 void next(); //将游标指向下一个元素 8 boolean hasNext(); //判断是否存在下一个元素 9 10 boolea

【设计模式】迭代器模式

迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式.这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示. 迭代器模式属于行为型模式. 介绍 意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示. 主要解决:不同的方式来遍历整个整合对象. 何时使用:遍历一个聚合对象. 如何解决:把在元素之间游走的责任交给迭代器,而不是聚合对象. 关键代码:定义接口:hasNext, next. 应用实例:JAVA 中的