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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

【GOF23设计模式】迭代器模式

發(fā)布時(shí)間:2023/12/18 asp.net 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【GOF23设计模式】迭代器模式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【GOF23設(shè)計(jì)模式】迭代器模式

來(lái)源:http://www.bjsxt.com/?
一、【GOF23設(shè)計(jì)模式】_迭代器模式、JDK內(nèi)置迭代器、內(nèi)部類迭代器

1 package com.test.iterator; 2 /** 3 * 自定義的迭代器接口 4 */ 5 public interface MyIterator { 6 void first(); //將游標(biāo)指向第一個(gè)元素 7 void next(); //將游標(biāo)指向下一個(gè)元素 8 boolean hasNext(); //判斷是否存在下一個(gè)元素 9 10 boolean isFirst(); 11 boolean isLast(); 12 13 Object getCurrentObj(); //獲取當(dāng)前游標(biāo)指向的對(duì)象 14 } 1 package com.test.iterator; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /** 7 * 自定義的聚合類 8 */ 9 public class ConcreteMyAggregate { 10 private List<Object> list = new ArrayList<Object>(); 11 12 public void addObject(Object obj){ 13 this.list.add(obj); 14 } 15 public void removeObject(Object obj){ 16 this.list.remove(obj); 17 } 18 19 public List<Object> getList() { 20 return list; 21 } 22 public void setList(List<Object> list) { 23 this.list = list; 24 } 25 26 //獲得迭代器 27 public MyIterator createIterator(){ 28 return new ConcreteIterator(); 29 } 30 31 //使用內(nèi)部類定義迭代器,可以直接使用外部類的屬性 32 private class ConcreteIterator implements MyIterator{ 33 34 private int cursor; //定義游標(biāo)用于記錄遍歷時(shí)的位置 35 36 @Override 37 public void first() { 38 cursor = 0; 39 } 40 41 @Override 42 public void next() { 43 if(cursor<list.size()){ 44 cursor++; 45 } 46 } 47 48 @Override 49 public boolean hasNext() { 50 if(cursor<list.size()){ 51 return true; 52 } 53 return false; 54 } 55 56 @Override 57 public boolean isFirst() { 58 return cursor==0?true:false; 59 } 60 61 @Override 62 public boolean isLast() { 63 return cursor==(list.size()-1)?true:false; 64 } 65 66 @Override 67 public Object getCurrentObj() { 68 return list.get(cursor); 69 } 70 } 71 } 1 package com.test.iterator; 2 3 public class Client { 4 public static void main(String[] args) { 5 ConcreteMyAggregate cma = new ConcreteMyAggregate(); 6 cma.addObject("aa"); 7 cma.addObject("bb"); 8 cma.addObject("cc"); 9 10 MyIterator iter = cma.createIterator(); 11 while(iter.hasNext()){ 12 System.out.println(iter.getCurrentObj()); 13 iter.next(); 14 } 15 } 16 }

posted on 2016-08-24 13:41 ErBing 閱讀(...) 評(píng)論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/erbing/p/5802590.html

總結(jié)

以上是生活随笔為你收集整理的【GOF23设计模式】迭代器模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。