现在的位置: 首页 > 综合 > 正文

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

2012年05月07日 ⁄ 综合 ⁄ 共 370字 ⁄ 字号 评论关闭

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

解决集合和访问的问题。

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

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

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

clip_image002

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

clip_image004

clip_image006

clip_image008

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

clip_image010

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

clip_image012

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

<完>

抱歉!评论已关闭.