C#面向对象模式设计第十八讲:Iterator 迭代器模式(行为型模式)

(根据MSDN WebCast相关课程整理)

解决集合和访问的问题。

集合内部结构主要有链表式,顺序式等。

组件开发人员往往希望在不暴露组件内部结构的前提下,提供灵活的外部访问。

GoF:提供一种方法顺序的访问一个聚合对象中的各个元素,而不暴露对象的各个组织结构。

C#面向对象模式设计第十八讲:Iterator 迭代器模式(行为型模式)

MyEnumerator继承自IEnumerator,因此同样相同的字段和方法。在MyCollection中,通过GetEnumable()方法,获得MyEnumerator对象,从而实现对MyCollection中对象的顺序访问。

C#面向对象模式设计第十八讲:Iterator 迭代器模式(行为型模式)

C#面向对象模式设计第十八讲:Iterator 迭代器模式(行为型模式)

C#面向对象模式设计第十八讲:Iterator 迭代器模式(行为型模式)

在C#环境中,我们还可以更加方便的使用迭代器:

C#面向对象模式设计第十八讲:Iterator 迭代器模式(行为型模式)

另,在C#2.0以后,我们还可以很加方便的实现GetEnumerator()方法:

C#面向对象模式设计第十八讲:Iterator 迭代器模式(行为型模式)

在迭代器中,我们不可以更改集合对象中个体元素的值,也不可以更改容器结构。我们应该确实集合中每个元素被遍历且只被遍历一次。

<完>

转载于:https://www.cnblogs.com/luckeryin/archive/2012/03/01/2375864.html