迭代器模式据说有人要将它从设计模式中剔除,原因是各种语言基本都内置了这种模式,比如c#的foreach语句,实在是太平常了,不值得特别一提。
但我对这个迭代器,尤其是.NET的IEnumerable、IEnumerator甚感迷惑,有必要总结一下。
迭代器模式,主要由两部分组成:聚集器和迭代器。
聚集器代表数据集合;迭代器用于访问聚集器里的数据。迭代器在聚集器类里面实现,类中类的方式。
在.NET里面,聚集器接口就是IEnumerable,迭代器接口就是IEnumerator。IEnumerable返回一个IEnumerator对象。如果一个对象要提供foreach这种迭代功能,应该实现这两个接口。