打字猴:1.700467163e+09
1700467163 IProject p=(IProject)projectIterator.next();
1700467164
1700467165 System.out.println(p.getProjectInfo());
1700467166
1700467167 }
1700467168
1700467169 }
1700467170
1700467171 }
1700467172
1700467173 运行结果如下所示:
1700467174
1700467175 项目名称是:星球大战项目 项目人数:10 项目费用:100000
1700467176
1700467177 项目名称是:扭转时空项目 项目人数:100 项目费用:10000000
1700467178
1700467179 项目名称是:超人改造项目 项目人数:10000 项目费用:1000000000
1700467180
1700467181 项目名称是:第4个项目 项目人数:20 项目费用:4000000
1700467182
1700467183 项目名称是:第5个项目 项目人数:25 项目费用:5000000
1700467184
1700467185 .
1700467186
1700467187 .
1700467188
1700467189 .
1700467190
1700467191 运行结果完全相同,但是上面的程序复杂性增加了不少,难道我们退回到原始时代了吗?非也,非也,只是我们回退到JDK 1.0.8版本的编程时代了,我们使用一种新的设计模式——迭代器模式。
1700467192
1700467193
1700467194
1700467195
1700467196 设计模式之禅 [:1700454009]
1700467197 设计模式之禅 20.2 迭代器模式的定义
1700467198
1700467199 迭代器模式(Iterator Pattern)目前已经是一个没落的模式,基本上没人会单独写一个迭代器,除非是产品性质的开发,其定义如下:
1700467200
1700467201 Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.(它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。)
1700467202
1700467203 迭代器是为容器服务的,那什么是容器呢?能容纳对象的所有类型都可以称之为容器,例如Collection集合类型、Set类型等,迭代器模式就是为解决遍历这些容器中的元素而诞生的。其通用类图,如图20-3所示。
1700467204
1700467205
1700467206
1700467207
1700467208 图20-3 迭代器模式的通用类图
1700467209
1700467210 迭代器模式提供了遍历容器的方便性,容器只要管理增减元素就可以了,需要遍历时交由迭代器进行。迭代器模式正是由于使用得太频繁,所以大家才会忽略,我们来看看迭代器模式中的各个角色:
1700467211
1700467212 ❑Iterator抽象迭代器
[ 上一页 ]  [ :1.700467163e+09 ]  [ 下一页 ]