迭代器模式是一種行為型模式。在這種模式中,集合結構會提供乙個迭代器。通過這個迭代器可以順序遍歷集合中的每個元素而不需要暴露其具體的實現。
下面是迭代器模式的一些具體實現:
在golang當前的版本(1.16或更早)中是沒有泛型的,所以一些特殊情況下還是需要會用到迭代器模式。
來看下類圖:
下面是示例**:
iterator.go:12
34type
iterator
inte***ce
collection.go:12
3type
collection
inte***ce
user.go:12
34type
user
struct
useriterator.go:12
3456
78910
1112
1314
1516
1718
1920
type
useriterator
struct
func
(u *useriterator) hasnext() bool
return
false
}
func
(u *useriterator) getnext() *user
return
nil
}
usercollection.go:12
3456
789type
usercollection
struct
func
(u *usercollection) createiterator() iterator
}
main.go:12
3456
78910
1112
1314
1516
1718
func
main()
user2 := &user
usercollection := &usercollection,
}
iterator := usercollection.createiterator()
for
iterator.hasnext()
}
輸出內容:12
user is &
user is &
**已上傳至github: github / zhyea / iterator-design-pattern
end!
僅是學習筆記,難免出錯,望不吝指點
轉 迭代器模式是一種行為型模式。在這種模式中,集合結構會提供乙個迭代器。通過這個迭代器可以順序遍歷集合中的每個元素而不需要暴露其具體的實現。
下面是迭代器模式的一些具體實現:
在golang當前的版本(1.16或更早)中是沒有泛型的,所以一些特殊情況下還是需要會用到迭代器模式。
來看下類圖:
下面是示例**:
iterator.go:12
34type
iterator
inte***ce
collection.go:12
3type
collection
inte***ce
user.go:12
34type
user
struct
useriterator.go:12
3456
78910
1112
1314
1516
1718
1920
type
useriterator
struct
func
(u *useriterator) hasnext() bool
return
false
}
func
(u *useriterator) getnext() *user
return
nil
}
usercollection.go:12
3456
789type
usercollection
struct
func
(u *usercollection) createiterator() iterator
}
main.go:12
3456
78910
1112
1314
1516
1718
func
main()
user2 := &user
usercollection := &usercollection,
}
iterator := usercollection.createiterator()
for
iterator.hasnext()
}
輸出內容:12
user is &
user is &
**已上傳至github: github / zhyea / iterator-design-pattern
end!
C語言和設計模式(迭代器模式)09
使用過c 的朋友大概對迭代器模式都不會太陌生。這主要是因為我們在編寫 的時候離不開迭代器,佇列有迭代器,向量也有迭代器。那麼,為什麼要迭代器呢?這主要是為了提煉一種通用的資料訪問方法。比如說,現在有乙個資料的容器,cpp view plain copy typedef struct containe...
設計模式 迭代器模式
迭代器模式是屬於物件行為性的模式。首先是定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露物件的表示方法。迭代器的結構圖 適用性 1 訪問乙個聚合物件的內容而無需暴露它的內部表示 2 支援聚合物件的多種遍歷 3 為遍歷不同的聚合結構提供乙個統一的介面 支援多型迭代 協作 concretei...
設計模式 迭代器模式
iterator,提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部表示。迭代器模式就是分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可讓外部 透明地訪問集合內部的資料。iterator迭代器抽象類 迭代器抽象類 abstract clas...