設計模式 迭代器模式

2021-08-14 12:22:33 字數 2049 閱讀 3666

個人理解:

1. 迭代器模式:提供一種方法順序訪問乙個聚合物件中的各種元素,而又不暴露該物件的內部表示。

2. 迭代器模式結構:

iterator: 抽象迭代器:所有迭代器都需要實現的介面,提供了遊走聚合物件元素之間的方法。

concreteiterator: 具體迭代器。利用這個具體的迭代器能夠對具體的聚合物件進行遍歷。每乙個聚合物件都應該對應乙個具體的迭代器。

aggregate: 抽象聚合類。

concreteaggregate: 具體聚合類。實現creatoriterator()方法,返回該聚合物件的迭代器。

3. 示例**:

public inte***ce iterator

public class concreteiterator implements iterator 

@override

public void

first()

@override

public void

next()

}@override

public boolean

isdone()

@override

public object currentitem()

@override

public int

size()

@override

public int

currentindex()

}

public abstract class aggregate

public class concreteaggregate extends aggregate 

@override

public iterator createiterator()

public object getelement(int index)else

}public int

size()

}

客戶端呼叫:

private void 

iterator();

aggregate aggregate = new concreteaggregate(objarray);

iterator iterator = aggregate.createiterator();

while (!iterator.isdone())

log.i("iterator"

, "------" + iterator.size() + "------");

}

4. 執行結果:

01-10 15:14:19.733 16275-16275/com.wdp.designtest i/iterator: ------position:0;name: 德瑪西亞------

01-10 15:14:19.733 16275-16275/com.wdp.designtest i/iterator: ------position:1;name: 艾希------

01-10 15:14:19.733 16275-16275/com.wdp.designtest i/iterator: ------position:2;name: 拉克絲------

01-10 15:14:19.733 16275-16275/com.wdp.designtest i/iterator: ------position:3;name: 趙信------

01-10 15:14:19.733 16275-16275/com.wdp.designtest i/iterator: ------position:4;name: 李青------

01-10 15:14:19.733 16275-16275/com.wdp.designtest i/iterator: ------position:5;name: teemo------

01-10 15:14:19.733 16275-16275/com.wdp.designtest i/iterator: ------6------

設計模式 迭代器模式

迭代器模式是屬於物件行為性的模式。首先是定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露物件的表示方法。迭代器的結構圖 適用性 1 訪問乙個聚合物件的內容而無需暴露它的內部表示 2 支援聚合物件的多種遍歷 3 為遍歷不同的聚合結構提供乙個統一的介面 支援多型迭代 協作 concretei...

設計模式 迭代器模式

iterator,提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可讓外部 透明地訪問集合內部的資料。iterator迭代器抽象類 迭代器抽象類 abstract clas...

設計模式 迭代器模式

迭代器模式在我們日常程式設計中使用非常頻繁,像list map 陣列等都會用到迭代器模式。迭代器模式屬於行為型模式,它用於順序訪問集合物件的元素,不需要知道集合物件的底層表示。在迭代器模式結構圖中包含如下幾個角色 它支援以不同的方式遍歷乙個聚合物件。迭代器簡化了聚合類。在同乙個聚合上可以有多個遍歷。...