大話設計模式筆記(十七) 迭代器模式

2022-05-02 03:12:08 字數 1942 閱讀 9548

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

/**

* 聚集抽象類

* created by callmedevil on 2019/8/17.

*/public abstract class aggregate

/**

* 迭代器抽象類

* created by callmedevil on 2019/8/17.

*/public abstract class iterator

/**

* 具體聚集類

* created by callmedevil on 2019/8/17.

*/public class concreteaggregate extends aggregate

// 返回聚集的總個數

public int count()

// 宣告乙個索引器

public object get(int index)

public boolean set(object o)

}

/**

* 具體迭代器類

* created by callmedevil on 2019/8/17.

*/public class concreteiterator extends iterator

@override

public object first()

@override

public object next()

return ret;

}@override

public boolean isdone()

@override

public object currentitem()

}

public class test }}

車位no.1乘客:路飛

路飛 來不及解釋了,快上車!

鳴人 來不及解釋了,快上車!

一護 來不及解釋了,快上車!

悟空 來不及解釋了,快上車!

納茲 來不及解釋了,快上車!

琦玉 來不及解釋了,快上車!

/**

* 倒序具體迭代器

* created by callmedevil on 2019/8/17.

*/public class concreteiteratordesc extends iterator

@override

public object first()

@override

public object next()

return ret;

}@override

public boolean isdone()

@override

public object currentitem()

}

將順序測試類中宣告迭代器具體物件改為倒序的concreteiteratordesc即可。

車位no.1乘客:琦玉

琦玉 來不及解釋了,快上車!

納茲 來不及解釋了,快上車!

悟空 來不及解釋了,快上車!

一護 來不及解釋了,快上車!

鳴人 來不及解釋了,快上車!

路飛 來不及解釋了,快上車!

迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可以讓外部**透明的訪問集合內部的資料。

設計模式 十七 迭代器模式

iterator pattern 迭代器模式 iterator pattern 提供一種方法來訪問聚合物件,而不用暴露這個物件的內部表示,其別名為游標 cursor 迭代器模式是一種物件行為型模式。聚合物件是來儲存一系列資料。聚合物件擁有兩個職責 一是儲存資料 二是遍歷資料。從依賴性來看,前者是聚合...

設計模式 十七 迭代器模式

比如集合 迭代器將儲存資料和遍歷資料隔離開來,但是每新增加乙個集合就需要新增乙個迭代器型別。日常使用時很少會自定義給乙個迭代器,都是復用jdk的迭代器。課程public class course public string getname 存放課程 存放課程 遍歷課程 public inte ce ...

大話設計模式十八之迭代器模式

售票員其實在做一件重要的事,就是把車廂裡的所有人都遍歷了一遍,不放過乙個不買票的乘客。者也是乙個設計模式的體現。迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中各個元素,而又不爆露該物件的內部表示。當你需要訪問乙個聚集物件,而且不管這些物件是什麼都需要遍歷的時候,你就應該考慮用迭代器...