提供乙個方法按順序遍歷乙個集合內的元素,而又不需要暴露該物件的內部表示。
1 訪問乙個聚合的物件,而不需要暴露物件的內部表示
2 支援對聚合物件的多種遍歷
3 對遍歷不同的物件,提供統一的介面。
iterator 定義訪問的介面
/**
* 抽象的迭代,有判斷結束和下乙個,獲取當前元素等函式
* @author xingoo
* */
inte***ce iterator
concreteiterator 具體的迭代器,跟蹤聚合內的元素
/**
* 具體的迭代類
* @author xingoo
* */
class concreteiterator implements iterator
public void first()
public void next()
}public boolean isdone()
public object currentitem()
}
aggregate 提供聚合的介面
/**
* 聚合的類
* @author xingoo
* */
abstract class aggregate
}
concreteaggregate 具體的聚合
/**
* 具體的聚合物件,擁有大小,建立迭代子等函式
* @author xingoo
* */
class conreteaggregate extends aggregate;
public iterator createiterator()
public object getelement(int index)else
}public int size()
}
全部**
1 package com.xingoo.iterator;
2 /**
3 * 聚合的類
4 * @author xingoo
5 *
6 */
7 abstract class aggregate
11 }
12 /**
13 * 抽象的迭代,有判斷結束和下乙個,獲取當前元素等函式
14 * @author xingoo
15 *
16 */
17 inte***ce iterator
23 /**
24 * 具體的聚合物件,擁有大小,建立迭代子等函式
25 * @author xingoo
26 *
27 */
28 class conreteaggregate extends aggregate;
30 public iterator createiterator()
33 public object getelement(int index)else
39 }
40 public int size()
43 }
44 /**
45 * 具體的迭代類
46 * @author xingoo
47 *
48 */
49 class concreteiterator implements iterator
59 60 public void first()
63 64 public void next()
68 }
69 70 public boolean isdone()
73 74 public object currentitem()
77
78 }
79 /**
80 * 客戶端 使用方法
81 * @author xingoo
82 *
83 */
84 public class client
93 }
94 public static void main(string args)
98 }
執行結果
test1
test2
test3
test4
Java設計模式 迭代器模式(Iterator)
迭代器角色 iterator 迭代器角色 iterator 迭代器角色負責定義訪問和遍歷元素的介面。author yanbin public inte ce iterator 具體迭代器角色 concreteiterator 具體迭代器角色 concrete iterator 具體迭代器角色要實現迭...
Behavioral模式之Iterator模式
提供一種方法順序訪問乙個集合物件中各個元素,而不需要暴露該物件的內部表示。cursor 游標 乙個聚合物件,如列表 list 應該提供一種方法來讓別人可以訪問它的元素,而又不需要暴露它的內部結構。資料庫中最常用的iterator模式。以下情況使用iterator模式 顧名思義,迭代器模式就是順序訪問...
設計模式 迭代器模式
迭代器模式是屬於物件行為性的模式。首先是定義 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露物件的表示方法。迭代器的結構圖 適用性 1 訪問乙個聚合物件的內容而無需暴露它的內部表示 2 支援聚合物件的多種遍歷 3 為遍歷不同的聚合結構提供乙個統一的介面 支援多型迭代 協作 concretei...