迭代器模式之看芒果台还是央视nie?

       ”大风车吱呀吱悠悠的转,这里的风景啊真好看,天好看,地好看,还有一群快乐的小伙伴,大风车转呀转悠悠,快乐的伙伴手牵着手,牵着你的手,牵着我的手......“童年的美好时光因为有了《动画城》的陪伴而倍感幸福,那个时候,家里有一台古董式的电视机,是一台黑白电视机,转台的时候需要通过电视机上面的那些按钮来完成,也就是换台的按钮,但是并不是每次都那么幸运,可以准时收看我喜欢的儿童节目,有时候出现一片白茫茫的雪花点儿,剩下的就只是郁闷了。就这样,动画片稳稳的托住了我童年的欢乐。

        随着科技的飞速发展,各种电视机可谓是百家争鸣,百花齐放,三星SAMSUNG ,索尼SONY液晶电视 ,海信Hisense液晶电视等,让你眼花缭乱,而那些黑白的电视机慢慢淡出我们的视线,归隐山林,与那时的电视机相比,现今的电视机给我们带来的最大便利之一就是增加了电视机遥控器,我们在进行开机、关机、换台、改变音量等操作时都无须直接操作电视机,可以通过遥控器来间接实现。我们可以将电视机看成一个存储电视频道的集合对象,通过遥控器可以对电视机中的电视频道集合进行操作,如返回上一个频道、跳转到下一个频道或者跳转至指定的频道。遥控器为我们操作电视频道带来很大的方便,用户并不需要知道这些频道到底如何存储在电视机中。

        今天我们的设计模式就从电视机遥控器开始说起,在软件开发中,也存在大量类似电视机一样的类,它们可以存储多个成员对象,这些类通常称为聚合类(Aggregate Classes),对应的对象称为聚合对象。为了更加方便地操作这些聚合对象,同时可以很灵活地为聚合对象增加不同的遍历方法,我们也需要类似电视机遥控器一样的角色,可以访问一个聚合对象中的元素但又不需要暴露它的内部结构。首先我们来看一下迭代器模式的结构图;

        

       对上述结构图进行一些解释:

        Iterator(抽象迭代器):它定义了访问和遍历元素的接口,声明了用于遍历数据元素的方法,例如:用于获取第一个元素的first()方法,用于访问下一个元素的next()方法,用于判断是否还有下一个元素的hasNext()方法,用于获取当前元素的currentItem()方法等,在具体迭代器中将实现这些方法。
        ConcreteIterator(具体迭代器):它实现了抽象迭代器接口,完成对聚合对象的遍历,同时在具体迭代器中通过游标来记录在聚合对象中所处的当前位置,在具体实现时,游标通常是一个表示位置的非负整数。
       Aggregate(抽象聚合类):它用于存储和管理元素对象,声明一个createIterator()方法用于创建一个迭代器对象,充当抽象迭代器工厂角色。
       ConcreteAggregate(具体聚合类):它实现了在抽象聚合类中声明的createIterator()方法,该方法返回一个与该具体聚合类对应的具体迭代器ConcreteIterator实例。

       在迭代器模式中,提供了一个外部的迭代器来对聚合对象进行访问和遍历,迭代器定义了一个访问该聚合元素的接口,并且可以跟踪当前遍历的元素,了解哪些元素已经遍历过而哪些没有。迭代器的引入,将使得对一个复杂聚合对象的操作变得简单。
        迭代器模式遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构。

    

时间: 2024-10-22 05:25:29

迭代器模式之看芒果台还是央视nie?的相关文章

纠结的芒果台:娱乐还是新闻,这是一个问题

插图/刘志泉 终于,芒果等来了登顶的这一天.2009年,被昵称为"芒果台"的湖南卫视广告收入超过20亿,远超其他省级卫视几个数量级,成为仅次于央视的电视娱乐旗舰.芒果台与青海台深度合作,也即将开启湖南广电新一轮改革,让期待已久的芒果传媒浮出水面.但正如狄更斯一句被传炒得很烂俗的句子所说,对于芒果来说,这是最好的时代,也是最坏的时代.浙江.江苏.安徽的激烈同质化竞争下,李好.彭宇.李响已经加盟江苏卫视,而毕业招聘一只脚已经踏进湖南卫视大门的朱丹,最终成了浙江卫视娱乐节目的一姐.总局的61

芒果台终于摆脱了一贯的大俗大雅风格

芒果台终于摆脱了一贯的大俗大雅风格,与韩国联合出了一期让大家都期待着周五到来的节目.爸爸去哪儿的火爆和好评度前所未有,下面就为大家用大数据分析解读爸爸去哪儿. 所有人都有爸爸,约一半的人有机会成为爸爸,仅凭此,<爸爸去哪儿>火地就有"硬道理".从舞台秀走向真人秀,<爸爸去哪儿>以近乎"零差评"的口碑创造了电视娱乐节目的成功转型.有观众说,在疲惫的周末夜晚,被"星爸萌娃"温暖后入睡,简直就是一次"治愈系"

迭代器模式

迭代器模式遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构. 迭代器模式的结构中包括四种角色. 一.集合:一个接口,规定了具体集合需要实现的操作. 二.具体集合:具体集合石实现了集合接口的一个实例,具体的集合按照一定的结构存储对象.具体集合应该有一个方法,该方法返回一个针对该集合的具体迭代器. 三.迭代器:一个接口,规定了遍历具体集合的方法,比如next()方法. 四.具体迭代器:实

芒果台新春合家欢硕果累累幸福生活季快乐来袭

<回家的诱惑>剧照 新浪娱乐讯 在即将步入2011年之际,始终坚持锐意创新的湖南卫视,重点推出了由"新春合家欢季"."幸福生活季"."青春偶像季"和"金色梦想季"四个播出季组成的全新季播战略.目前,"新春合家欢季"已接近尾声,从这期间推出的组成项目上看,可谓硕果累累,尤其是在春节黄金周期间,湖南卫视收视迎来喜人态势,全天.晚间及黄金时段,排名位居省级卫视第一.而在今天启动的"幸福生活季

iOS App设计模式开发中对迭代器模式的使用示例_IOS

何为迭代器模式?     迭代器提供了一种顺序访问集合对象中元素的方法,而无需暴漏结构的底层表示和细节.遍历集合中元素的职能从集合本身转移到迭代器对象.迭代器定义了一个用于访问集合元素并记录当前元素的接口.不同的迭代器可以执行不同的策略. 例子 说了这么多,下面给大家展示一下类关系图. 上图中Client的右边是迭代器,左边是具体迭代的类型,在迭代器内部对具体需要迭代的类型进行了引用,还算不难理解吧,呵呵.其实,看起来是为了对具体类型进行解耦.好啦,下面给出具体的代码实现,简单的模拟了迭代器模式

PHP设计模式之迭代器模式的深入解析_php技巧

迭代器(Iterator)模式,它在一个很常见的过程上提供了一个抽象:位于对象图不明部分的一组对象(或标量)集合上的迭代.迭代有几种不同的具体执行方法:在数组属性,集合对象,数组,甚至一个查询结果集之上迭代. 在对象的世界里,迭代器模式要维持类似数组的功能,看作是一个非侵入性对象刻面(facet),Client类往往分离自真实对象实现,指iterator接口.只要有可能,我们可以给迭代器传送一个引用,代替将来可能发生变化的具体或抽象类.参与者:◆客户端(Client):引用迭代器模式的方法在一组

迭代器模式(Iterator)

1, 从 For循环说起          在几乎所有的编程语言中,都有3大结构:顺序,选择,循环.它们就像是3种框架,用来搭建不同的模型.在这3种结构中,最为独特的,要当属循环结构了.其实,我觉得叫它"懒人结构"更好.     我们自己是比较擅长处理顺序和选择的,但是如果这些东西交给计算机处理,那么我们就要为编写很多代码,告诉它出现的各种情况,应该怎样处理各种情况,这对于计算机来说,其实是件比较困难的事.但对于循环结构,计算机是比较乐意处理它的.这是间非常有意思的事,我们厌倦重复,而

阿里与芒果台真的要收购PPTV?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这边厢,PPTV陶闯在互联网大会上还强调独立发展,那边厢,月经新闻PPTV收购案终于要画上句号,据36氪消息,阿里巴巴和湖南卫视联合出资4亿美元收购PPTV.据悉,交易已经基本完成,因软银急于套现退出,此次收购价已属"贱价甩卖". 如上述信息属实,则国内独立视频网站料再有一员大将折戟.虎嗅对后市分析如下: 1.通过联合收购

56打造强势娱乐新品牌,网络版“芒果台”呼之欲出

随着网络的普及,电视似乎失去了其原有的魅力,昨天,何玺和几个朋友在在一家咖啡吧喝咖啡.现在的话题不同于5年前"最近你在看哪个台的电视剧?看哪个台的娱乐节目?",而是变成了"看视频,你一般上什么网站啊?",一个朋友说自己喜欢优酷,另一位朋友说,喜欢上土豆网,我则独喜欢56网. 在何玺看来,http://www.aliyun.com/zixun/aggregation/32294.html">土豆网视频内容主要依靠网友添加,优酷网在界面设计.操作方式等方