聲明:本系列部落格參考資料《大話設計模式》,作者程傑。
疊代器模式:疊代器模式是周遊集合的成熟模式,疊代器模式的關鍵是将周遊集合的任務交給一個叫做疊代器的對象,它的工作時周遊并選擇序列中的對象,而用戶端程式員不必知道或關心該集合序列底層的結構。
UML類圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQ3chVEa0V3bT9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVP9cXT4VERNhHatFmdRhlW1VTaitmTzkVdjJjYzpkMMZ3bENGMShUYvwFd4VGdvwlMvw1ayFWbyVGdhd3PxIDOyATNwIjM4AjNwUTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)
角色:
Iterator(疊代器):疊代器定義通路和周遊元素的接口
ConcreteIterator(具體疊代器):具體疊代器實作疊代器接口,對該聚合周遊時跟蹤目前位置
Aggregate (聚合):聚合定義建立相應疊代器對象的接口(可選)
ConcreteAggregate(具體聚合):具體聚合實作建立相應疊代器的接口,該操作傳回ConcreteIterator的一個适當的執行個體(可選)
核心代碼:
調用用戶端測試代碼:
使用場景:
1.通路一個聚合對象的内容而無需暴露它的内部表示
2.支援對聚合對象的多種周遊
3.為周遊不同的聚合結構提供一個統一的接口
歡迎關注我的視訊課程,位址如下,謝謝。
<a target="_blank" href="http://edu.csdn.net/course/detail/602"> PHP面向對象設計模式</a>