资讯专栏INFORMATION COLUMN

迭代器模式(Iterator)

mayaohua / 2261人阅读

摘要:迭代器模式一迭代器模式定义提供一种方法顺序访问一个集合对象中的各种元素,而又不暴露该对象的内部表示角色抽象迭代器接口具体迭代器抽象聚合接口具体聚合二具体实现创建抽象迭代器接口创建抽象聚合接口创建具体聚合及具体迭代器调用输出三优缺点优点简化了

迭代器模式

一. 迭代器模式 1.1 定义

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

1.2 角色

抽象迭代器接口(Iterator).

具体迭代器(ConcreteIterator).

抽象聚合接口(Aggregate).

具体聚合(ConcreteAggregate).

二. 具体实现 1.1 创建抽象迭代器接口

</>复制代码

  1. public interface Iterator {
  2. Object next();
  3. boolean hasNext();
  4. }
1.2 创建抽象聚合接口

</>复制代码

  1. public interface Aggregate {
  2. Iterator iterator();
  3. }
1.3 创建具体聚合及具体迭代器

</>复制代码

  1. public class ConcreteAggregate implements Aggregate {
  2. @Override
  3. public Iterator iterator() {
  4. return new ConcreteIterator();
  5. }
  6. private class ConcreteIterator implements Iterator {
  7. @Override
  8. public Object next() {
  9. System.out.println("ConcreteIterator next ...");
  10. return null;
  11. }
  12. @Override
  13. public boolean hasNext() {
  14. System.out.println("ConcreteIterator hasNext ....");
  15. return true;
  16. }
  17. }
  18. }
1.4 调用

</>复制代码

  1. public static void main(String[] args) {
  2. Aggregate aggregate = new ConcreteAggregate();
  3. Iterator iterator = aggregate.iterator();
  4. if(iterator.hasNext()){
  5. iterator.next();
  6. }
  7. }
1.5 输出

</>复制代码

  1. ConcreteIterator hasNext ....
  2. ConcreteIterator next ...
三. 优缺点 3.1 优点

简化了聚合类的接口.

3.2 缺点

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

四. 源码

</>复制代码

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

END

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69643.html

相关文章

  • 一起学设计模式 - 迭代模式

    摘要:迭代器模式属于行为型模式的一种,提供一种方法访问一个容器中各个元素,而又不需要暴露该对象的内部细节。迭代器模式把在元素之间游走的责任交给迭代器,而不是聚合对象。 迭代器模式(Iterator Pattern)属于行为型模式的一种,提供一种方法访问一个容器中各个元素,而又不需要暴露该对象的内部细节。 概述 迭代器模式听起来可能感觉很陌生,但是实际上,迭代器模式是所有设计模式中最简单也是...

    JasonZhang 评论0 收藏0
  • JavaScript 设计模式(五):迭代模式

    摘要:文章内容分两部分前半部分为迭代器模式概念后半部分为中迭代器上半部分开始迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。下半部分开始的迭代器迭代器等同于遍历器。执行该函数,会返回一个遍历器对象。 showImg(https://segmentfault.com/img/bVbuyaZ?w=800&h=600); 文章内容分两部分: 前半部分为 迭...

    zhou_you 评论0 收藏0
  • js设计模式--迭代模式

    摘要:文章系列设计模式单例模式设计模式策略模式设计模式代理模式概念迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。 前言 本系列文章主要根据《JavaScript设计模式与开发实践》整理而来,其中会加入了一些自己的思考。希望对大家有所帮助。 文章系列 js设计模式--单例模式 js设计模式--策略模式 js设计模式--代理模式 概念 迭代器模式是指...

    binta 评论0 收藏0
  • 迭代模式迭代协议

    摘要:迭代器模式迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。可迭代协议和迭代器协议。生成器函数是可以作为迭代器工厂的函数,当它被执行时会返回一个新的对象,该对象符合可迭代协议和迭代器协议。 迭代器模式 迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。 迭代器分为内部迭代器和外部迭代器。内部迭代器只需一次初...

    doodlewind 评论0 收藏0
  • PHP设计模式迭代模式

    摘要:概念迭代器模式,又叫做游标模式。另外,当需要对聚集有多种方式遍历时,可以考虑去使用迭代器模式。迭代器模式为遍历不同的聚集结构提供如开始下一个是否结束当前哪一项等统一的接口。 概念 迭代器模式(Iterator),又叫做游标(Cursor)模式。提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。 当你需要访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候,就...

    陆斌 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<