1. 程式人生 > >23種設計模式之迭代器模式

23種設計模式之迭代器模式

迭代器模式的定義

定義: 它提供一種方法訪問一個容器物件中各個元素, 而又不需暴露該物件的內部細節

其類圖如下:

23種設計模式之迭代器模式

 

其中角色:

  1. Iterator 抽象迭代器: 抽象迭代器負責定義訪問和遍歷元素的介面, 而且基本上是有固定的三個方法: first()獲得第一個元素, next()訪問下一個元素, isDone() 是否已經訪問到末尾
  2. ConcreteIteraor 具體迭代器: 實現抽象 迭代器, 完成容器元素的遍歷
  3. Aggregate 抽象容器: 負責提供建立具體迭代器的介面
  4. ConcreteAggregate 具體容器: 實現抽象容器定義的方法, 創建出容納迭代器的物件

其程式碼實現如下:

抽象迭代器:

23種設計模式之迭代器模式

 

具體迭代器:

23種設計模式之迭代器模式

 

抽象容器:

23種設計模式之迭代器模式

 

具體容器:

23種設計模式之迭代器模式

 

場景類:

23種設計模式之迭代器模式

 

迭代器模式的應用

其實, 現在基本上所有的高階語言都實現了迭代器, 基本上跟很少有專案再獨立寫迭代器了.

迭代器現在應用的越來越廣泛了, 甚至已經成為一個最基礎的工具


如果做Java開發, 儘量不要自己寫迭代器模式. 使用Java提供的Iterator一般就能滿足要求了


 

 

可以關注一下鄙人的公眾號, 謝謝各位了!