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

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

固定 基本 語言 info 應用 .com 自己 訪問和遍歷 公眾號

叠代器模式的定義

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

其類圖如下:

技術分享圖片

其中角色:

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

其代碼實現如下:

抽象叠代器:

技術分享圖片

具體叠代器:

技術分享圖片

抽象容器:

技術分享圖片

具體容器:

技術分享圖片

場景類:

技術分享圖片

叠代器模式的應用

其實, 現在基本上所有的高級語言都實現了叠代器, 基本上跟很少有項目再獨立寫叠代器了.

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


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


可以關註一下鄙人的公眾號, 謝謝各位了!技術分享圖片

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