前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式 ☞ 行为型之迭代器模式

设计模式 ☞ 行为型之迭代器模式

作者头像
Demo_Null
发布2021-01-14 14:48:12
3120
发布2021-01-14 14:48:12
举报
文章被收录于专栏:Java 学习Java 学习

1.1 简介

1.1.1 概述

  迭代器(Iterator)模式的定义:在不暴露集合底层表现形式(列表、栈和树等)的情况下遍历集合中所有的元素。迭代器模式在生活中应用的比较广泛,比如:物流系统中的传送带,不管传送的是什么物品,都会被打包成一个个箱子,并且有一个统一的二维码。这样我们不需要关心箱子里是什么,在分发时只需要一个个检查发送的目的地即可。再比如,我们平时乘坐交通工具,都是统一刷卡或者刷脸进站,而不需要关心是男性还是女性、是残疾人还是正常人等信息。

在这里插入图片描述
在这里插入图片描述

1.1.2 优缺点

优点:  ① 访问一个聚合对象的内容而无须暴露它的内部表示。  ② 遍历任务交由迭代器完成,这简化了聚合类。  ③ 它支持以不同方式遍历一个聚合,甚至可以自定义迭代器的子类以支持新的遍历。  ④ 增加新的聚合类和迭代器类都很方便,无须修改原有代码。  ⑤ 封装性良好,为遍历不同的聚合结构提供一个统一的接口。

缺点:  ① 增加了类的个数,这在一定程度上增加了系统的复杂性。

1.2 案例

  比如说有一棵二叉树,我们可以有前序遍历,中序遍历,后序遍历等,在迭代器迭代器除实现自身算法外,还封装了遍历操作的所有细节,这样一来,只要有合适的迭代器,客户端代码就能兼容任何类型的集合或遍历算法。我们并不需要关心内部使用的哪一种方式来实现,只需要关注结果即可。在现实生活中也有类似案例,比如我们去到某一个城市,找一个导游带我们去玩,至于是怎么一个游玩的顺序我们并不需要管,每个景点都游玩到了就可以了,具体内容是导游安排的。

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 简介
    • 1.1.1 概述
      • 1.1.2 优缺点
      • 1.2 案例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档