迭代器模式(iterator),又稱為游標(cursor)模式,是一種行為性模型,行為型模式關注的是系統中物件之間的相互互動,解決系統在執行時物件之間的相互通訊和協作,進一步明確物件的職責。相比來說,建立型模式關注物件的建立過程,結構型模式關注物件和類的組合關係。
提供一種可以遍歷聚合物件的方式。
聚合物件:儲存資料
迭代器:遍歷資料
public
inte***ce
myiterator
public
class
concretemyaggregate
public
void
addobject(object obj)
public
void
removeobject(object obj)
public listgetlist()
public
void
setlist(listlist)
//外部獲得迭代器的類的方法
public myiterator createiterator()
//使用內部類定義迭代器,可以直接使用外部類的屬性
private
class
concreteitertor
implements
myiterator
//迭代器的真正實現
public object getcurrentobj()
public
boolean
hasnext()
return
false;
}public
boolean
islast()
public
boolean
isfirst()
public
void
next()
}}
這個實現案例是用正向遍歷的迭代器,其實也可以實現逆向遍歷的迭代器(就是每次都把游標向前一位的那種)。
jdk內建的迭代器(list/set)裡面也是用的這種方式。
GOF23 設計模式
design patterns elements of reusable object oriented software 即後述 設計模式 一書 由 erich gamma richard helm ralph johnson 和 john vlissides 合著 addison wesley,...
設計模式GOF23 工廠模式
簡單工廠模式 static factory method 是建立者模式的一種,是負責建立物件的模式。工廠模式是為了實現建立物件和呼叫物件分離的需求。簡單工廠用來生產同一等級結構中的任意產品。對於新增的產品需要修改已有 工廠方法模式用來生產同意等級結構中的固定產品。支援增加任意產品 抽象工廠模式用來生...
設計模式GOF23 外觀模式
外觀模式 facade 是結構性模式的一種,也有人稱它為門面模式。結構型模式的核心作用是從程式的結構上實現低耦合,從而可以擴大整體的類結構,用來解決更大的問題。外觀模式的核心就是為子系統提供統一的入口,封裝系統的複雜性,便於客戶端呼叫。外觀角色 在客戶端可以呼叫它的方法,它會把客戶端呼叫需要的操作放...