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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

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

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

來源:http://www.bjsxt.com/?
一、【GOF23設計模式】_迭代器模式、JDK內置迭代器、內部類迭代器

1 package com.test.iterator; 2 /** 3 * 自定義的迭代器接口 4 */ 5 public interface MyIterator { 6 void first(); //將游標指向第一個元素 7 void next(); //將游標指向下一個元素 8 boolean hasNext(); //判斷是否存在下一個元素 9 10 boolean isFirst(); 11 boolean isLast(); 12 13 Object getCurrentObj(); //獲取當前游標指向的對象 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 //使用內部類定義迭代器,可以直接使用外部類的屬性 32 private class ConcreteIterator implements MyIterator{ 33 34 private int cursor; //定義游標用于記錄遍歷時的位置 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 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/erbing/p/5802590.html

總結

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

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