标簽 : Java與設計模式
疊代器模式: 提供一種方法順序通路聚合對象(如<code>List</code>、<code>Set</code>)内的每個元素, 而又不暴露聚合對象的内部實作.
Iterator: 疊代器
定義通路和周遊元素的接口
Aggregate: 聚合
定義建立響應疊代器對象的接口
由于Java已内置了<code>java.lang.Iterable</code>和<code>java.util.Iterator</code>接口, 而<code>Iterable</code>可以作為Aggregate存在(Abstract), 是以在Java中實作疊代器便可不用再定義這兩個接口.
ConcreteAggregate: 具體聚集
實作<code>Iterable</code>接口, 傳回ConcreteIterator的一個适當的執行個體;
ConcreteIterator : 具體疊代器
實作<code>Iterator</code>接口(最好作為具體聚集的内部類), 對該聚集周遊時跟蹤目前位置.
Client
适用
通路一個聚集對象的内容而無需暴露它的内部表示;
支援對聚集對象的多種周遊(如: 不光可以正向周遊, 還可以反向周遊容器元素.);
為周遊不同的聚合結構提供一個統一的接口(即: 支援多态疊代).
<code>Iterator</code>使用場景不必多言, 由于Java已經将其固化到語言中,是以開發中天天都在使用:
當需要通路一個聚集對象, 且不需要了解其内部實作的時, 就應該考慮使用疊代器模式.
當需要對聚集有多種方式周遊時, 可以考慮使用疊代器模式.
<dl></dl>
<dt>參考</dt>
by 攻城師@翡青
Email: [email protected]