Java迭代模式(Iterator模式)

2021-07-02 23:37:43 字數 2314 閱讀 4586

上了這麼多年學,我發現乙個問題,好象老師都很喜歡點名,甚至點名都成了某些老師的嗜好,一日不點名,就飯吃不香,覺睡不好似的,我就覺得很奇怪,你的課要是講的好,同學又怎麼會不來聽課呢,殊不知:「誤人子弟,乃是犯罪!」啊。

好了,那麼我們現在來看老師這個點名過程是如何實現吧:

1、老規矩,我們先定義老師(teacher)介面類:

public inte***ce teacher

2、具體的老師(concreteteacher)類是對老師(teacher)介面的實現:

public class concreteteacher implements teacher; //同學出勤集合

public iterator createiterator()

public object getelement(int index)

4、具體的點名(concreteiterator)類是對點名(iterator)介面的實現:

public class concreteiterator implements iterator

public void first()

public void next()

public object currentitem() }

5、編寫測試類:

public class test }

public static void main(string agrs) }

6、說明:

a:定義:iterator模式可以順序的訪問乙個聚集中的元素而不必暴露聚集的內部情況。

b:在本例中,老師(teacher)給出了建立點名(iterator)物件的介面,點名(iterator)定義了遍歷同學出勤情況所需的介面。

c:iterator模式的優點是當(concreteteacher)物件中有變化是,比如說同學出勤集合中有加入了新的同學,或減少同學時,這種改動對客戶端是沒有影響的。

迭代器模式

概述

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。
適用性

1.訪問乙個聚合物件的內容而無需暴露它的內部表示。

2.支援對聚合物件的多種遍歷。

3.為遍歷不同的聚合結構提供乙個統一的介面(即,支援多型迭代)。

參與者

1.iterator

迭代器定義訪問和遍歷元素的介面。

2.concreteiterator

具體迭代器實現迭代器介面。

對該聚合遍歷時跟蹤當前位置。

3.aggregate

聚合定義建立相應迭代器物件的介面。

4.concreteaggregate

具體聚合實現建立相應迭代器的介面,該操作返回concreteiterator的乙個適當的例項.

iterator

public inte***ce iterator
concreteiterator

public class iteratorimpl implements iterator 

public void first()

public void last()

public object next()

public boolean hasnext()

}

aggregate

public inte***ce list
concreteaggregate

public class listimpl implements list 

public iterator iterator()

public object get(int index)

public int getsize()

public void add(object obj)

}

test

public class test 

system.out.println("*****");

//第二種迭代方式

for (int i = 0; i < list.getsize(); i++) }}

result

abc

*****ab

c

Java設計模式 迭代器模式(Iterator)

迭代器角色 iterator 迭代器角色 iterator 迭代器角色負責定義訪問和遍歷元素的介面。author yanbin public inte ce iterator 具體迭代器角色 concreteiterator 具體迭代器角色 concrete iterator 具體迭代器角色要實現迭...

Behavioral模式之Iterator模式

提供一種方法順序訪問乙個集合物件中各個元素,而不需要暴露該物件的內部表示。cursor 游標 乙個聚合物件,如列表 list 應該提供一種方法來讓別人可以訪問它的元素,而又不需要暴露它的內部結構。資料庫中最常用的iterator模式。以下情況使用iterator模式 顧名思義,迭代器模式就是順序訪問...

Java迭代模式(Iterator模式)

上了這麼多年學,我發現乙個問題,好象老師都很喜歡點名,甚至點名都成了某些老師的嗜好,一日不點名,就飯吃不香,覺睡不好似的,我就覺得很奇怪,你的課要是講的好,同學又怎麼會不來聽課呢,殊不知 誤人子弟,乃是犯罪!啊。好了,那麼我們現在來看老師這個點名過程是如何實現吧 1 老規矩,我們先定義老師 teac...