23种设计模式之迭代器模式(Iterator)

简介: 23种设计模式之迭代器模式(Iterator)迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部表示。

23种设计模式之迭代器模式(Iterator)

迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部表示。迭代器模式支持以不同的方式遍历一个聚合对象,复杂的聚合可用多种方法来进行遍历;允许在同一个聚合上可以有多个遍历,每个迭代器保持它自己的遍历状态,因此,可以同时进行多个遍历操作。

优点:

1)支持集合的不同遍历。

2)简化了集合的接口。

使用场景:

1)在不开发集合对象内部表示的前提下,访问集合对象内容。

2)支持集合对象的多重遍历。

3)为遍历集合中的不同结构提供了统一的接口。

Iterator 模式

 

public interface Aggregate { Iterator iterator(); }

 

public class Book { public Book() { // } public string GetName() { return "这是一本书"; } }

 

public class BookShelf { private IList<Book> books; public BookShelf(int initialsize) { this.books = new List<Book>(initialsize); } public Book GetBookAt(int index) { return books[index] as Book; } public int GetLength() { return books.Count; } public Iterator iterator() { return new BookShelfIterator(this); } }

 

public class BookShelfIterator : Iterator { private BookShelf bookShelf; private int index; public BookShelfIterator(BookShelf bookShelf) { this.bookShelf = bookShelf; this.index = 0; } public bool HasNext() { if (index < bookShelf.GetLength()) { return true; } else { return false; } } public object Next() { Book book = bookShelf.GetBookAt(index) as Book; index++; return book; } }

 

public interface Iterator { bool HasNext(); Object Next(); }

 

  class Program { static void Main(string[] args) { //迭代器模式 BookShelf bookShelf = new BookShelf(4); Iterator.Iterator it = bookShelf.iterator(); while (it.HasNext()) { Book book = it.Next() as Book; Console.WriteLine("" + book.GetName()); } } }

 

 

 

 

 

 

 

目录
相关文章
|
4月前
|
设计模式 Java
Java设计模式【十七】:迭代器模式
Java设计模式【十七】:迭代器模式
31 0
|
4月前
|
设计模式
二十三种设计模式全面解析-组合模式与迭代器模式的结合应用:构建灵活可扩展的对象结构
二十三种设计模式全面解析-组合模式与迭代器模式的结合应用:构建灵活可扩展的对象结构
|
2天前
|
设计模式 Go
[设计模式 Go实现] 行为型~迭代器模式
[设计模式 Go实现] 行为型~迭代器模式
|
13天前
|
设计模式 Java
小谈设计模式(21)—迭代器模式
小谈设计模式(21)—迭代器模式
|
1月前
|
设计模式 存储 算法
【设计模式】迭代器模式
【设计模式】迭代器模式
|
3月前
|
设计模式 Java 数据挖掘
聊聊Java设计模式-迭代器模式
迭代器(Iterator)模式,也叫做游标(Cursor)模式。我们知道,在Java 容器中,为了提高容器遍历的方便性,我们利用迭代器把遍历逻辑从不同类型的集合类中抽取出来,从而避免向外部暴露集合容器的内部结构。
44 0
聊聊Java设计模式-迭代器模式
|
3月前
|
设计模式 算法 Go
Golang设计模式——07迭代器模式
Golang设计模式——07迭代器模式
24 0
|
3月前
|
设计模式 前端开发 索引
【设计模式】之迭代器模式
迭代器模式是一种非常有用的设计模式,在前端开发中可以帮助我们更好地管理和操作数据集合。它通过封装集合对象的内部结构,并提供统一的遍历方式,使得代码更加简洁、可维护和可扩展。然而,在使用迭代器模式时需要权衡其优缺点,并根据具体情况进行选择。
43 0
|
4月前
|
设计模式 算法
二十三种设计模式全面解析-迭代器模式进阶篇:探索变体与扩展
二十三种设计模式全面解析-迭代器模式进阶篇:探索变体与扩展
|
4月前
|
设计模式 算法 数据库
二十三种设计模式全面解析-解密迭代器模式:探索遍历之道
二十三种设计模式全面解析-解密迭代器模式:探索遍历之道