迭代模式(Iterator),提供一種方法順序訪問一個聚合對象中各個元素灾杰,而又不暴露該對象的內(nèi)部表示蚊丐。
適用場景
- 當(dāng)你需要訪問一個聚集對象,而且不管這些對象是什么都需要遍歷的時候艳吠,你就應(yīng)該考慮用迭代器模式麦备。
- 你需要對聚集有多重方式遍歷時,可以考慮用迭代器模式昭娩。
優(yōu)點(diǎn)
迭代器(Iterator)模式就是分離了集合對象的遍歷行為凛篙,抽象出一個迭代器類來負(fù)責(zé),這樣既可以做到不暴露集合的內(nèi)部結(jié)構(gòu)栏渺,有可讓外部代碼透明地訪問集合內(nèi)部的數(shù)據(jù)呛梆。
缺點(diǎn)
對于比較簡單的遍歷(像數(shù)組或者有序列表),使用迭代器方式遍歷較為繁瑣磕诊,大家可能都有感覺填物,像ArrayList,我們寧可愿意使用for循環(huán)和get方法來遍歷集合秀仲。
設(shè)計(jì)模式系列:
創(chuàng)建型 | 結(jié)構(gòu)型 | 行為型 |
---|---|---|
工廠方法 簡單工廠 抽象工廠 建造者模式 單例模式 原型模式 |
組合模式 外觀模式 橋接模式 代理模式 享元模式 適配器模式 裝飾模式 |
策略模式 模板方法 狀態(tài)模式 觀察者模式 備忘錄模式 迭代器模式 命令模式 職責(zé)鏈模式 解釋器模式 訪問者模式 中介者模式 |