說實話這個迭代器模式實現起來有點模糊
[cpp]view plain
copy
print?
/* 迭代器模式:提供一種方法順序訪問乙個聚合物件中個各個元素,而不暴露該對像的內部表示.
模式的動機:
(1)乙個聚合物件,如乙個列表(list)或者乙個集合(set),應該提供一種方法來讓別人可以訪問
它的元素,而又不需要暴露它的內部結構。
(2)針對不同的需要,可能還要以不同的方式遍歷整個聚合物件,但是我們並不希望在聚合物件的
抽象層介面中充斥著各種不同遍歷的操作。
(3)怎樣遍歷乙個聚合物件,又不需要了解聚合物件的內部結構,還能夠提供多種不同的遍歷方式,
這就是迭代器模式所要解決的問題。
created by phoenix_fulima
*/
#include
#include
using namespace std;
/* object可以是任意型別的變數 */
typedef int object;
class iterator
; class concreteaggregate
object& operator(int index)
int size()
};
class concreteiterator:public iterator
virtual object begin()
virtual void next()
virtual object end()
virtual object current()
virtual bool isdone()
};
int main()
cout<
delete objects;
delete iter;
system("pause");
return 0;
}
迭代器模式
迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中各個元素,而不是暴露該物件的內部表示。乙個聚集物件,而且不管這些物件是什麼都需要遍歷的時候,你就應該考慮用迭代器模式。你需要對聚集有多種方式遍歷時,可以考慮用迭代器模式。為遍歷不同的聚集結構提供如開始,下乙個,是否結束,當前哪一項等統一...
迭代器模式
我最早接觸的設計模式就是迭代器模式了哈 為什麼要有迭代器模式呢?看下下面的 就知道了哈 對於乙個陣列物件sz 我們要怎麼遍歷呢?public void bianlisz class geweishu public myiterator getiterator private class geweis...
迭代器模式
迭代器模式 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件多的內部表示。1 iterator抽象類 public abstract class iterator 2 aggregate聚集抽象類 public abstract class aggregate 3 concreteite...