迭代器模式

一. 迭代器模式

1.1 定义

  • 提供一种方法顺序访问一个集合对象中的各种元素,而又不暴露该对象的内部表示.

1.2 角色

  • 抽象迭代器接口(Iterator).
  • 具体迭代器(ConcreteIterator).
  • 抽象聚合接口(Aggregate).
  • 具体聚合(ConcreteAggregate).

二. 具体实现

1.1 创建抽象迭代器接口

    public interface Iterator {Object next();boolean hasNext();}

1.2 创建抽象聚合接口

    public interface Aggregate {Iterator iterator();}

1.3 创建具体聚合及具体迭代器

    public class ConcreteAggregate implements Aggregate {@Overridepublic Iterator iterator() {return new ConcreteIterator();}private class ConcreteIterator implements Iterator {@Overridepublic Object next() {System.out.println("ConcreteIterator next ...");return null;}@Overridepublic boolean hasNext() {System.out.println("ConcreteIterator hasNext ....");return true;}}}

1.4 调用

    public static void main(String[] args) {Aggregate aggregate = new ConcreteAggregate();Iterator iterator = aggregate.iterator();if(iterator.hasNext()){iterator.next();}}

1.5 输出

ConcreteIterator hasNext ....ConcreteIterator next ...

三. 优缺点

3.1 优点

  • 简化了聚合类的接口.

3.2 缺点

  • 增加新的聚合类需要增加新的具体迭代器.

四. 源码

    https://github.com/Seasons20/DisignPattern.git

END

迭代器模式(Iterator)相关推荐

  1. 设计模式 - 迭代器模式(iterator pattern) 具体解释

    迭代器模式(iterator pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 迭代器模式(iterator pattern) : 提供一 ...

  2. 设计模式:迭代器模式(Iterator Pattern)

    迭代器模式(Iterator Pattern): 属于行为型模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即: 不暴露其内部结构.

  3. c++迭代器模式iterator

    c++迭代器模式iterator 概念 角色和职责 案例 概念 Iterator模式也叫迭代模式,是行为模式之一,它把对容器中包含的内部对象的访问委让给外部类,使用Iterator(遍历)按顺序进行遍 ...

  4. 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)

    设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型) 1.概述 类中的面向对象编程封装应用逻辑.类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态.单独的对象是一种组织代码的有用 ...

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

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  6. 迭代器模式(Iterator pattern)

    一. 引言 迭代这个名词对于熟悉Java的人来说绝对不陌生.我们常常使用JDK提供的迭代接口进行java collection的遍历: Iterator it = list.iterator(); w ...

  7. 迭代器模式(Iterator)解析例子

    摘要:本文深入浅出的讲述了设计模式中的迭代器模式,并给出了简单的示例,例子浅显易懂,并附带源代码. 迭代器模式属于行为型模式,其意图是提供一种方法顺序访问一个聚合对象中得各个元素,而又不需要暴露该对象 ...

  8. 解读设计模式----迭代器模式(Iterator Pattern),谁才是迭代高手

    一.你在开发中使用过迭代吗?      当你在使用JavaScript开发客户端应用的时候使用过for...in吗?  1<script type="text/javascript&q ...

  9. 听webcast的行为型模式篇-迭代器模式(Iterator Pattern) 记录

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> dotnet或java里 ...

  10. 33迭代器模式(Iterator Pattern)

    动机(Motivate):     在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种" ...

最新文章

  1. 分布式一致性(共识)算法(Paxos,raft,ZAB)的一些总结
  2. 陶哲轩实分析 习题 13.4.6
  3. 016_continue和break语句
  4. linux sendto 对方关闭后性能,Gateway的请问sendToUid是否有性能问题?
  5. 二分查找(对半搜索)
  6. ffmpeg-从mp4、flv、ts文件中提取264视频流数据
  7. Python开发常用工具库
  8. 俄国数学家称:“平行线可以相交”,却遭到质疑,死后12年被证实
  9. ant指定servlet版本_[转载]程序开发常见错误
  10. Matplotlib 中文用户指南 1 简介
  11. Centos 7系统目录结构
  12. Windows系统结构图
  13. SWFUpload文件上传
  14. Java证件照剪切_GitHub - caoqiang250/idPicCut: 对原始证件照进行压缩,剪裁,换背景,(美颜)...
  15. 一支管理高效的技术团队是什么样子的?
  16. Paypal 与Moneybookers
  17. 基于AR虚拟现实技术的维基世界浏览器wikitude
  18. 齐纳二极管 稳压二极管 SOD123封装 正负区分
  19. 扫码反馈,“码”上回复:二维码在业主意见反馈中的应用
  20. 多linux系统的安装方法,在Linux系统中安装使用WPS的方法

热门文章

  1. BugkuCTF-PWN题canary超详细讲解
  2. java 排序api_用java api进行sort
  3. mysql出现core dumped_mysql-为什么我遇到分段错误(核心已转储)?
  4. lr不能直接转ps编辑_摄影后期调色软件,Lr软件包
  5. c#二叉树 取叶子节点个数_两种类似但是原理不同的算法求二叉树的所有叶子节点和...
  6. linux系统关机half,Linux 学习 (六) 关机与重启命令
  7. 筛法求素数c 语言,位筛法求素数,有段代码看不懂,有大佬可以来说一下
  8. php 日志按天截取,Laravel 日志管理:按日期切割日志
  9. MySQL考试复习(知识点、练习题)
  10. java接口的应用举例