1.訪問乙個集合物件的內容而無需暴露它的內部表示
2.為遍歷不同的集合結構提供乙個統一的訪問介面1.多型迭代:為不同的聚合結構提供一致的遍歷介面,即乙個迭代介面可以訪問不同的聚集物件;
2.簡化集合物件介面:迭代器模式將集合物件本身應該提供的元素迭代介面抽取到了迭代器中,使集合物件無須關心具體迭代行為;
3.元素迭代功能多樣化:每個集合物件都可以提供乙個或多個不同的迭代器,使得同種元素聚合結構可以有不同的迭代行為;
4.解偶迭代與集合:迭代器模式封裝了具體的迭代演算法,迭代演算法的變化,不會影響到集合物件的架構.1.對於比較簡單的遍歷(像陣列或者有序列表),使用迭代器方式遍歷較為繁瑣
public
class
course
public string getname()
public
void
setname
(string name)
@override
public string tostring()
';}}
public
inte***ce
iterator
public
inte***ce
icourseaggregate
public
class
courseaggregateimpl
implements
icourseaggregate
@override
public
void
add(course course)
@override
public
void
remove
(course course)
@override
public iterator
iterator()
}
public
class
iteratorimpl
implements
iterator
@override
public e next()
@override
public
boolean
hasnext()
return
false;}
}
public
class
test
private
static
void
printcourse
(icourseaggregate aggregate)
}}
設計模式之迭代器模式
概念 提供一種方法順序訪問乙個聚合物件中各個元素,而又不需暴露該物件的內部表示。main 客戶 iproject,產品介面 cproject,產品類 iiterator,迭代器介面 iprojectiterator,產品迭代器介面 cprojectiterator,產品迭代器實現類 說明 cproj...
設計模式之迭代器模式
當你需要訪問乙個聚集物件,而且不管這些物件是什麼都需要遍歷的時候,而且可能對聚集有多種方式遍歷時,需要為遍歷不同的聚集結構提供如開始,下乙個,是否結束,當前哪一項等 統一介面,你就應該考慮用迭代器模式.提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示.uml設計圖 部分 ite...
設計模式之迭代器模式
說起迭代器,大家一定不陌生,經常使用的foreach in 這種迴圈就是,c 語言已經內建化了迭代器模式,主要是支援對非泛型集合的簡單迭代介面ieumerator和公開列舉數ienumerable。雖然內建了,但是這種模式也有我們學習的必要性。如下 using system using system...