国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

小白如何免費做網(wǎng)站阿里巴巴國際站關鍵詞推廣

小白如何免費做網(wǎng)站,阿里巴巴國際站關鍵詞推廣,wordpress 提供api,贛州是哪個省目錄 一、前言 二、迭代器模式 三、總結(jié) 一、前言 迭代器模式(Iterator Pattern)是一種行為型設計模式,提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內(nèi)部表示??偟膩碚f就是分離了集合對象的遍歷行為,抽象出…

目錄

一、前言

二、迭代器模式

三、總結(jié)


一、前言

? ? ? ? 迭代器模式(Iterator?Pattern)是一種行為型設計模式,提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內(nèi)部表示??偟膩碚f就是分離了集合對象的遍歷行為,抽象出一個迭代器類來負責,這樣既可以做到不暴露集合的內(nèi)部結(jié)構(gòu),又可以讓外部代碼透明地訪問集合內(nèi)部的數(shù)據(jù)。

? ? ? ? 迭代器模式由以下角色組成:

Iterator(抽象迭代器):

定義了遍歷聚合對象所需的方法,包括hashNext()和next()方法等,用于遍歷聚合對象中的元素

Concrete Iterator(具體迭代器):

它是實現(xiàn)迭代器接口的具體實現(xiàn)類,負責具體的遍歷邏輯。它保存了當前遍歷的位置信息,并可以根據(jù)需要向前或向后遍歷集合元素

Aggregate(抽象聚合器):

一般是一個接口,提供一個iterator()方法,例如java中的Collection接口,List接口,Set接口等。

ConcreteAggregate(具體聚合器):

就是抽象容器的具體實現(xiàn)類,比如List接口的有序列表實現(xiàn)ArrayList,List接口的鏈表實現(xiàn)LinkList,Set接口的哈希列表的實現(xiàn)HashSet等。

? ? ? ? 整個迭代器模式的結(jié)構(gòu)圖:

二、迭代器模式

? ? ? ? 迭代器實際上在現(xiàn)有的語言中基本都有實現(xiàn),比如java里面的foreach,如果使用到了foreach,查看.class文件,可以發(fā)現(xiàn)編譯后的實際是使用Iterator進行的迭代遍歷:

? ? ? ? 這里就簡單模擬List<String>的迭代器。

? ? ? ? 首先創(chuàng)建類Iterator:

public interface Iterator<T> {T next();boolean hasNext();
}

? ? ? ? 具體的實現(xiàn)類ConcreteIterator:

public class ConcreteIterator<T> implements Iterator{private List<T> aggregate;private int index;public ConcreteIterator(List<T> aggregate) {this.aggregate = aggregate;}@Overridepublic T next() {return aggregate.get(index++);}@Overridepublic boolean hasNext() {return index < aggregate.size() ? true : false;}
}

? ? ? ? 再創(chuàng)建Aggregate類:

public interface Aggregate<T> {void add(T str);Iterator<T> getIterator();
}

? ? ? ? 具體的實現(xiàn)ConcreteAggregate類:

public class ConcreteAggregate<T> implements Aggregate{private List<T> aggregate;public ConcreteAggregate() {this.aggregate = new ArrayList<>();}@Overridepublic void add(Object item) {this.aggregate.add((T) item);}@Overridepublic Iterator<T> getIterator() {return new ConcreteIterator(this.aggregate);}
}

? ? ? ? 客戶端調(diào)用:

public class Client {public static void main(String[] args) {ConcreteAggregate aggregate = new ConcreteAggregate();aggregate.add("1");aggregate.add("2");Iterator iterator = aggregate.getIterator();while (iterator.hasNext()){Object s = iterator.next();System.out.println(s);}}
}

? ? ? ? 運行結(jié)果:

三、總結(jié)

? ? ? ? 優(yōu)點與缺點:

優(yōu)點:

1、簡化遍歷:迭代器模式提供了一種統(tǒng)一的方法來遍歷各種聚合對象,客戶端代碼不需要了解聚合對象的具體實現(xiàn)

2、解耦遍歷算法和集合結(jié)構(gòu)通過引入迭代器,集合對象和遍歷算法分離,集合對象不需要實現(xiàn)遍歷邏輯,這提高了代碼的模塊化和復用性

3、多種遍歷方式可以為同一個集合提供不同的迭代器,實現(xiàn)多種遍歷方式(如正向遍歷、反向遍歷)

4、一致接口所有的集合都可以提供相同的迭代器接口,客戶端可以以相同的方式遍歷不同類型的集合,提升了代碼的靈活性和可維護性

5、并發(fā)支持某些迭代器可以支持并發(fā)遍歷,允許在多線程環(huán)境中安全地遍歷集合

缺點:

1、開銷增加由于引入了迭代器對象,會增加額外的類和對象,從而增加了系統(tǒng)的復雜性和內(nèi)存開銷。

2、外部迭代器復雜性在某些情況下,使用外部迭代器(顯式控制迭代過程)會使代碼變得復雜,特別是在需要嵌套迭代或管理迭代狀態(tài)時。

3、對變化敏感如果在迭代過程中集合結(jié)構(gòu)發(fā)生變化(如增刪元素),需要處理并發(fā)修改的問題,可能會引入額外的同步機制和復雜性。

? ? ? ? 應用場景:

1、遍歷集合對象:需要遍歷不同類型的集合對象(如數(shù)組、鏈表、樹、圖等)時,使用迭代器模式可以提供統(tǒng)一的遍歷方式。

2、隱藏集合內(nèi)部實現(xiàn):當不希望客戶端了解或依賴集合對象的內(nèi)部結(jié)構(gòu)時,可以使用迭代器模式隱藏內(nèi)部實現(xiàn)細節(jié)。

3、多種遍歷需求:需要對同一集合對象進行多種不同方式的遍歷時,可以定義多個不同類型的迭代器來滿足需求。

4、復雜聚合對象:對于一些復雜的聚合對象,如組合模式(Composite Pattern)中的樹形結(jié)構(gòu),迭代器模式可以提供一種簡單的遍歷方法。

http://aloenet.com.cn/news/29464.html

相關文章:

  • 張家港網(wǎng)站制作哪家好站長資源平臺
  • 如何做網(wǎng)站結(jié)構(gòu)優(yōu)化鄭州粒米seo顧問
  • 做網(wǎng)站的代碼常用的網(wǎng)絡推廣方法有哪些
  • 響應式網(wǎng)站 圖片尺寸奇數(shù)手機百度最新正版下載
  • 跨境電商建站seo站長教程
  • 網(wǎng)站制作rss千萬不要去電商公司上班
  • 凈水器公司網(wǎng)站源碼小江seo
  • 網(wǎng)站建設與管理李洪心西安seo外包行者seo06
  • 可以在視頻網(wǎng)站上做新聞節(jié)目嗎太原做網(wǎng)站的
  • 如何查看網(wǎng)站語言百度一下首頁官網(wǎng)下載
  • 做網(wǎng)站和小程序的區(qū)別google框架三件套
  • 做網(wǎng)站后端要什么技術(shù)網(wǎng)絡推廣代運營公司
  • 杭州蕭山區(qū)專門做網(wǎng)站的公司搜索引擎網(wǎng)站大全
  • 免費網(wǎng)站開發(fā)河南鄭州最新消息
  • 網(wǎng)站建設情況存在問題長沙seo推廣
  • 瑞安地區(qū)建設網(wǎng)站谷歌安裝器
  • 網(wǎng)站備案授權(quán)書范本baike seotl
  • 問答網(wǎng)站怎么做營銷想做推廣哪個平臺好
  • 網(wǎng)站連接跳轉(zhuǎn)怎么做網(wǎng)站排名查詢軟件
  • 網(wǎng)站做法深圳關鍵詞排名seo
  • 微信運營是做什么的seo自然排名關鍵詞來源的優(yōu)缺點
  • 淮南招聘網(wǎng)站建設搜索引擎技術(shù)優(yōu)化
  • 合肥網(wǎng)站建設優(yōu)化網(wǎng)絡營銷是什么工作主要干啥
  • 公司設計網(wǎng)站需要包含什么資料農(nóng)產(chǎn)品營銷方案
  • 做3d圖的網(wǎng)站新手學seo
  • 冒險島2做樂譜網(wǎng)站怎么進行網(wǎng)絡推廣
  • 南通高端網(wǎng)站微信軟文范例100字
  • 做響應式網(wǎng)站需要學哪些知識廊坊seo外包公司費用
  • 免費個人網(wǎng)站注冊黑馬程序員培訓機構(gòu)官網(wǎng)
  • 邢臺手機網(wǎng)站建設費用武漢seo培訓