解读设计模式----迭代器模式(Iterator Pattern),谁才是迭代高手
2008-05-14 17:56
537 查看
一、你在开发中使用过迭代吗?
当你在使用JavaScript开发客户端应用的时候使用过for...in吗?
1<script type="text/javascript">
2var obj;
3useForIn = function ()
4</script>
当你在.NET Frameworks上使用C#,VB.NET,J#等语言开发应用的时候使用过foreach....in吗?
1class Program
2import java.util.*;
2namespace DesignPattern.Iterator
2using System;
2using System.Collections.Generic;
3using System.Text;
4using System.Collections;
5
6namespace DesignPattern.Iterator
7
我们来比较下使用ArrayList和自定义的ReverseList类通过foreach....in遍历后的结果:
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace DesignPattern.Iterator
6public class 公交车:ArrayList
2using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace DesignPattern.Iterator
6namespace DesignPattern.Iterator
2{
3{
5{
7{
12{
18{
28{
30{
34 Console.WriteLine("你好{0}同志,你还没有买票,要走可以,请先买票!", k.Name);
35 }
36 }
37 }
38 }
39}
上面的代码很简单,我就不做详细解说,运行结果如下图:
五、总结迭代高手
从上面的几个示例中就可以看出,尽管我们没有显示的引用迭代器,但实质还是通过迭代器来遍历的。总地来说,迭代器模式就是分离了集合对象的迭代行为,抽象出一个迭代器类来负责,这样既可做到不暴露集合的内部结构,又可以让外部代码可以透明的访问集合内部的元素。
迭代器模式在访问数组、集合、列表等数据时,尤其是数据库数据操作时,是非常普遍的应用,但由于它太普遍了,所以各种高级语言都对他进行了封装,所以反而给人感觉此模式本身不太常用了。
看来现实生活中的售票员就是一位了不起的迭代高手,每次乘客上下车他都会数数进行统计,然后根据他自己的迭代方式去遍历车内的乘客进行售票,不会放过任何逃票之客。
任何行业都有技巧和经验,需要多思考、多琢磨,才能做到最好的。
编程又何尝不是这样,没有最好,只有更好,我们都需要努力。
注:上面总结源于《大话设计模式》
转载请注明出处:http://beniao.cnblogs.com 或 http://www.cnblogs.com
-----------------------------------------------------------------------------------------------------------
当你在使用JavaScript开发客户端应用的时候使用过for...in吗?
1<script type="text/javascript">
2var obj;
3useForIn = function ()
4</script>
当你在.NET Frameworks上使用C#,VB.NET,J#等语言开发应用的时候使用过foreach....in吗?
1class Program
2import java.util.*;
2namespace DesignPattern.Iterator
2using System;
2using System.Collections.Generic;
3using System.Text;
4using System.Collections;
5
6namespace DesignPattern.Iterator
7
我们来比较下使用ArrayList和自定义的ReverseList类通过foreach....in遍历后的结果:
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace DesignPattern.Iterator
6public class 公交车:ArrayList
2using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace DesignPattern.Iterator
6namespace DesignPattern.Iterator
2{
3{
5{
7{
12{
18{
28{
30{
34 Console.WriteLine("你好{0}同志,你还没有买票,要走可以,请先买票!", k.Name);
35 }
36 }
37 }
38 }
39}
上面的代码很简单,我就不做详细解说,运行结果如下图:
五、总结迭代高手
从上面的几个示例中就可以看出,尽管我们没有显示的引用迭代器,但实质还是通过迭代器来遍历的。总地来说,迭代器模式就是分离了集合对象的迭代行为,抽象出一个迭代器类来负责,这样既可做到不暴露集合的内部结构,又可以让外部代码可以透明的访问集合内部的元素。
迭代器模式在访问数组、集合、列表等数据时,尤其是数据库数据操作时,是非常普遍的应用,但由于它太普遍了,所以各种高级语言都对他进行了封装,所以反而给人感觉此模式本身不太常用了。
看来现实生活中的售票员就是一位了不起的迭代高手,每次乘客上下车他都会数数进行统计,然后根据他自己的迭代方式去遍历车内的乘客进行售票,不会放过任何逃票之客。
任何行业都有技巧和经验,需要多思考、多琢磨,才能做到最好的。
编程又何尝不是这样,没有最好,只有更好,我们都需要努力。
注:上面总结源于《大话设计模式》
转载请注明出处:http://beniao.cnblogs.com 或 http://www.cnblogs.com
-----------------------------------------------------------------------------------------------------------
相关文章推荐
- 解读设计模式----迭代器模式(Iterator Pattern) 推荐
- 您的设计模式——迭代器模式【Iterator Pattern】
- 如何让孩子爱上设计模式 ——16.迭代器模式(Iterator Pattern)
- 设计模式学习--迭代器模式(Iterator Pattern)和组合模式(Composite Pattern)
- 深入浅出设计模式-010:迭代器模式(Iterator Pattern)
- C#设计模式——迭代器模式(Iterator Pattern)
- 我所理解的设计模式(C++实现)——迭代器模式(Iterator Pattern)
- 23种设计模式(15)_行为型_迭代器模式(Iterator Pattern)
- 极速理解设计模式系列:16.迭代器模式(Iterator Pattern)
- 乐在其中设计模式(C#) - 迭代器模式(Iterator Pattern)
- 设计模式拾荒之迭代器模式 ( Iterator Pattern )
- 设计模式学习--迭代器模式(Iterator Pattern)和组合模式(Composite Pattern)
- 我所理解的设计模式(C++实现)——迭代器模式(Iterator Pattern)
- 设计模式【迭代器模式Iterator Pattern】
- 设计模式 - 迭代器模式(iterator pattern) 具体解释
- .NET设计模式-迭代器模式(Iterator Pattern)
- 设计模式21:Iterator Pattern (迭代器模式)
- 设计模式之九:迭代器模式(Iterator Pattern)
- 设计模式(C#)之迭代器模式(Iterator Pattern)
- 设计模式(C#)之迭代器模式(Iterator Pattern)