行為型 六 迭代器模式

2022-10-10 03:24:06 字數 1236 閱讀 6671

迭代器模式是什麼

迭代器模式是一種行為設計模式, 讓你能在不暴露集合底層表現形式 (列表、 棧和樹等) 的情況下遍歷集合中所有的元素。

為什麼用迭代器模式

當集合背後為複雜的資料結構, 且你希望對客戶端隱藏其複雜性時(出於使用便利性或安全性的考慮),可以使用迭代器模式。迭代器封裝了與複雜資料結構進行互動的細節,為客戶端提供多個訪問集合元素的簡單方法。這種方式不僅對客戶端來說非常方便,而且能避免客戶端在直接與集合互動時執行錯誤或有害的操作, 從而起到保護集合的作用。

迭代器模式怎麼實現

迭代器模式的主要思想是將集合背後的迭代邏輯提取至不同的名為迭代器的物件中。迭代器提供了一種方法用於在集合上進行迭代。

collection.go 集合

package iterator

type collection inte***ce

type user struct

type usercollection struct

func (u *usercollection) createiterator() iterator

}

iterator.go 迭代器
package iterator

type iterator inte***ce

type useriterator struct

func (u *useriterator) hasnext() bool

return false

}func (u *useriterator) getnext() *user

return nil

}

example.go 客戶端呼叫示例
package iterator

import "fmt"

func example()

user2 := &user

usercollection := &usercollection,

}iterator := usercollection.createiterator()

for iterator.hasnext()

}

優點

單一職責原則。 通過將體積龐大的遍歷演算法**抽取為獨立的類, 你可對客戶端**和集合進行整理。

開閉原則。 你可實現新型的集合和迭代器並將其傳遞給現有**, 無需修改現有**。

缺點如果你的程式只與簡單的集合進行互動, 應用該模式可能會矯枉過正。

迭代器模式 行為型

1 基礎知識 定義 提供一種方法,順序訪問乙個集合物件中的各個元素,而又不暴露該物件的內部表示 使用場景 訪問乙個集合物件的內容而無需暴露它的內部表示 為遍歷不同的集合結構提供乙個統一的介面 優點 1 它支援以不同的方式遍歷乙個聚合物件。2 迭代器簡化了聚合類。3 在同乙個聚合上可以有多個遍歷。缺點...

設計模式 迭代器模式 行為型

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。適用性 1.訪問乙個聚合物件的內容而無需暴露它的內部表示。2.支援對聚合物件的多種遍歷。3.為遍歷不同的聚合結構提供乙個統一的介面 即,支援多型迭代 類結構圖head first結構圖 系統結構圖 具體迭...

設計模式 行為型 迭代器模式

迭代器模式 iterator design pattern 也叫作游標模式 cursor design pattern 用來遍歷集合物件。這裡的 集合物件 也可以叫作 容器 實際上就是包含一組物件的物件,比如陣列 鍊錶 樹 圖 跳表等,迭代器模式主要是將集合物件的遍歷操作從集合類中拆分,放到迭代器中...