首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【地铁上的设计模式】--行为型模式:迭代器模式

    迭代器模式是一种行为型设计模式,它提供了一种遍历聚合对象中各个元素的方法,而不需要暴露该聚合对象的内部表示。这个模式分离了聚合对象的遍历行为,使得遍历算法能够与聚合对象分离开来,从而可以在不改变聚合对象的情况下定义新的遍历操作。迭代器模式由迭代器接口、具体迭代器类、聚合接口和具体聚合类等组成,其中迭代器接口定义了访问和遍历元素的方法,而聚合接口定义了创建迭代器的方法。迭代器模式的实现可以大大简化遍历聚合对象中元素的代码,同时也可以方便地新增不同类型的迭代器,从而为聚合对象提供不同的遍历行为。

    01

    迭代器模式

    在面向对象编程里,迭代器模式是一种最简单也最常见的设计模式。它可以让用户透过特定的接口访问集合中的每一个元素而不用了解底层的实现。一般实现一个集合的方法有:数组,链表,哈希表等等,每种集合因为底层实现不同,遍历集合的方法也不同。对于数组或者列表,用户需要在对集合了解很清楚的前提下,可以自行遍历对象,但是对于hash表来说,用户遍历起来就比较麻烦,而且暴露了集合类的内部表示给用户,数据也会不安全。而引入了迭代器方法后,用户用起来就简单的多了,并且更加安全。迭代器模式在客户访问类与集合类之间插入一个迭代器,这分离了聚合对象与其遍历行为,对客户也隐藏了其内部细节,且满足“单一职责原则”和“开闭原则”。所以,如果我们对各种集合的都实现了迭代器接口,就可以使存储数据和遍历数据的职责分离,并且让外部代码可以透明并统一地访问集合内部的数据,简化了遍历方式,还提供了良好的封装性,用户只需要得到迭代器就可以遍历,而对于遍历算法则不用关心。

    03

    Java设计模式学习记录-迭代器模式

    这次要介绍的是迭代器模式,也是一种行为模式。我现在觉得写博客有点应付了,前阵子一天一篇,感觉这样其实有点没理解透彻就写下来了,而且写完后自己也没有多看几遍,上次在面试的时候被问到java中的I/O的各种实现用到了什么设计模式,我愣是想半天没想出来了,人家还给提示了我也没想出来,最后还是面试官给出的答案,是装饰模式,听到答案后就恍然大悟了,前两天刚看了装饰模式,还写下了I/O操作中的各种类都是用到了装饰模式,后来想想两方面原因造成的当时没回答出来,一是面试时紧张就容易想不起来,二是对设计模式理解的还是不够透彻。所以以后宁可写博客慢一些也要将自己写的东西理解透彻了。

    03

    三分钟掌握“迭代器模式”——轻松搞定设计模式

    迭代器模式的官方定义: 迭代器模式提供了一种方法,它能够顺序访问一个集合对象中的各个元素,并且又不暴露该对象的内部结构。 不使用迭代器模式实现容器的迭代: 当我们拿到一个含有集合的对象时,如果我们想要遍历对象中的集合,就必须要知道对象的内部结构,然后使用for循环遍历对象中的集合。而且当我们需要换一种遍历方式的时候(如:顺序遍历换成逆序遍历),需要修改客户端的代码,这就违背了“封闭-开放原则”。但如果使用了迭代器模式之后,需要换迭代方式时,只需要增加一个迭代器类,然后稍微修改一下集合对象中的代码,而客户端代

    014

    在王者荣耀角度下分析面向对象程序设计B中23种设计模式之迭代器模式

    王者荣耀是一款允许多人组队的竞技游戏,在这种MOBA类游戏团队配合是最重要的,普遍玩家在排位中很多时候开黑上分相对比较容易,要比玩家单排上分强很多,于是许多玩家在王者荣耀大厅界面中,想要邀请好友一起玩游戏,这时玩家可以通过游戏列表查看QQ/微信好友的状态,以便判断是否邀请好友加入游戏。当好友在对局中时,玩家可以通过预约方式下把游戏一起玩;好友离线时,玩家则可以通过QQ/微信邀请好友上线,一起开黑。 以上就是迭代器模式在王者荣耀中的应用实例。本例中假设在线玩家和离线玩家信息分别以不同形式存储,或者假设在线玩家在列表中呈现给玩家的展示排序以及玩家显示信息分别以不同数据结构处理;当玩家想要依次查看各个好友的状态时,不需要了解上述等这些内容在系统内部的存在形式以及它们之间的关系就可以得知想要了解好友的状态等信息。

    00

    在王者荣耀角度下分析面向对象程序设计B中23种设计模式之迭代器模式

    王者荣耀是一款允许多人组队的竞技游戏,在这种MOBA类游戏团队配合是最重要的,普遍玩家在排位中很多时候开黑上分相对比较容易,要比玩家单排上分强很多,于是许多玩家在王者荣耀大厅界面中,想要邀请好友一起玩游戏,这时玩家可以通过游戏列表查看QQ/微信好友的状态,以便判断是否邀请好友加入游戏。当好友在对局中时,玩家可以通过预约方式下把游戏一起玩;好友离线时,玩家则可以通过QQ/微信邀请好友上线,一起开黑。 以上就是迭代器模式在王者荣耀中的应用实例。本例中假设在线玩家和离线玩家信息分别以不同形式存储,或者假设在线玩家在列表中呈现给玩家的展示排序以及玩家显示信息分别以不同数据结构处理;当玩家想要依次查看各个好友的状态时,不需要了解上述等这些内容在系统内部的存在形式以及它们之间的关系就可以得知想要了解好友的状态等信息。

    03
    领券