日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

大战设计模式【12】—— 迭代器模式

發布時間:2024/7/19 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大战设计模式【12】—— 迭代器模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

迭代器模式(Iterator)

?

設計模式使用的例子https://github.com/LinkinStars/DesignPatternsAllExample

?

一、定義

提供一種方法順序訪問一個聚合對象中的各個元素,而又不暴露其內部的表示。

?

二、結構

Iterator(抽象迭代器):定義了訪問和遍歷元素的接口,聲明了用于遍歷數據元素的方法。

ConcreteIterator(具體迭代器):它實現了抽象迭代器接口,完成對聚合對象的遍歷。

Aggregate(抽象聚合類):用于存儲和管理元素對象,聲明一個CreateIterator()方法用于創建一個迭代器對象,充當抽象迭代器工廠角色。

ConcreteAggregate(具體聚合類):實現了在抽象聚合類中聲明的CreateIterator()方法,返回一個對應的具體迭代器ConcreteIterator實例。

?

三、優點

支持以不同方式遍歷一個聚合對象,在同一個聚合對象上可以定義多種便利方式。

增加新的聚合類和迭代器類都很方便,無須修改原有代碼,符合開閉原則。

?

四、缺點

增加新的聚合類需要對應增加新的迭代器類

?

五、應用場景

訪問一個聚合對象的內容而無須暴露它的內部表示。

需要為一個聚合對象提供多種遍歷方式。

?

六、個人總結

1、如果你已經了解java中的迭代器,那么迭代器設計模式應該很容易理解,簡單的說,java利用這樣的設計模式設計出了它的迭代器

對于我們熟知的那些集合都可以使用迭代器去遍歷

2、例子中我們自己創建了迭代器的接口,這是我們學習所需要了解內部機制所用的

在實際中我們通常使用java.util.Iterator

?

?

?

參考博客:http://www.cnblogs.com/edisonchou/p/7442138.html

轉載于:https://www.cnblogs.com/linkstar/p/7747226.html

總結

以上是生活随笔為你收集整理的大战设计模式【12】—— 迭代器模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。