提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。
/**
* 聚集抽象類
* 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 提供一種方法順序訪問乙個聚合物件中各個元素,而又不爆露該物件的內部表示。當你需要訪問乙個聚集物件,而且不管這些物件是什麼都需要遍歷的時候,你就應該考慮用迭代器...