迭代器模式(Iterator模式)
定義:
? ? 迭代器(Iterator)模式,又叫做游標(Cursor)模式。
? ? 提供一種方法訪問一個容器(container)對象中各個元素,而又不需暴露該對象的內部細節(jié)。
迭代器模式是為容器而生。
? ? 對容器對象的訪問必然涉及到遍歷算法。我們可以一股腦的將遍歷方法塞到容器對象中去;
? ? 或者根本不去提供什么遍歷算法,讓使用容器的人自己去實現去吧。
? ? 這兩種情況好像都能夠解決問題。
然而在前一種情況,容器承受了過多的功能,它不僅要負責自己“容器”內的元素維護
? (添加、刪除等等),而且還要提供遍歷自身的接口;而且由于遍歷狀態(tài)保存的問題,
? ? 不能對同一個容器對象同時進行多個遍歷。第二種方式倒是省事,卻又將容器的內部
? ? 細節(jié)暴露無遺。
而迭代器模式的出現,很好的解決了上面兩種情況的弊端
角色:
? ? 1) 迭代器角色(Iterator):迭代器角色負責定義訪問和遍歷元素的接口。
2) 具體迭代器角色(Concrete Iterator):具體迭代器角色要實現迭代器接口,
? ? ? 并要記錄遍歷中的當前位置。
3) 容器角色(Container):容器角色負責提供創(chuàng)建具體迭代器角色的接口。
4) 具體容器角色(Concrete Container):具體容器角色實現創(chuàng)建具體迭代器角色
? ? ? 的接口——這個具體迭代器角色于該容器的結構相關。
