設計模式 迭代模式Iterator

2021-08-01 13:28:58 字數 2396 閱讀 5014

提供乙個方法按順序遍歷乙個集合內的元素,而又不需要暴露該物件的內部表示。

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...