東莞廣告公司有哪些長沙seo優(yōu)化公司
Iterator模式(迭代器模式)
迭代器模式(Iterator),提供一種方法,順序訪問一個聚合對象中各個元素,而不是暴露該對象的內(nèi)部表示。
類圖結(jié)構(gòu)
說明
-
Iterator(迭代器)
該角色負(fù)責(zé)定義按順序逐個遍歷元素的接口(API)。類圖中定義的hasNext和next兩個函數(shù)。hasNext用于判斷是否存在下一個元素,next用于獲取元素
-
ConcreteIterator(具體的迭代器)
該角色負(fù)責(zé)實現(xiàn)Iterator定義的接口(API)
-
Aggregate(集合)
該角色負(fù)責(zé)定義創(chuàng)建Iterator接口對象。
-
ConreteAggregate(具體的集合)
該角色負(fù)責(zé)實現(xiàn)Aggregate角色所定義的接口(API)。它會創(chuàng)建出來具體的Iterator角色,即ConcreteIterator角色。
其他
原書中給的例子存在不恰當(dāng)?shù)牡胤?#xff1a;BookShelf類與BookShelfIterator之間是相互引用關(guān)系,這不是一個好現(xiàn)象;可以將BookShelf中的記錄Book對象的數(shù)組遷移到BookShelfIterator,這樣只保留BookShelf對BookShelfIterator的引用,降低類之間的耦合。
Adapter模式(適配器模式)
適配器模式(Adapter),將一個類的接口轉(zhuǎn)成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。
類圖
繼承實現(xiàn)
委托實現(xiàn)
說明
-
Target(對象)
該角色負(fù)責(zé)定義所需要的方法。
-
Client(請求者)
該角色負(fù)責(zé)使用Target角色所定義的方法進(jìn)行具體處理。
-
Adaptee(被適配)
被適配的角色,Adaptee是一個持有既定方法的角色,Target因某種原因無法直接使用這些方法。
-
Adapter(適配)
Adapter模式的主人公。使用Adapter角色的方法來滿足Target角色的需求,這是Adapter模式的目的,也是Adapter角色的作用。