迭代器模式

2021-09-01 13:33:23 字數 1411 閱讀 9447

迭代器模式:提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部元素;

為遍歷的物件提供乙個如開始、下乙個、是否結束、當前哪一項等統一的介面。

優點:1、它支援以不同的方式遍歷乙個聚合物件。 2、迭代器簡化了聚合類。 3、在同乙個聚合上可以有多個遍歷。 4、在迭代器模式中,增加新的聚合類和迭代器類都很方便,無須修改原有**。

缺點:由於迭代器模式將儲存資料和遍歷資料的職責分離,增加新的聚合類需要對應增加新的迭代器類,類的個數成對增加,這在一定程度上增加了系統的複雜性。

例項uml圖:

**實現:

/**

* @author shuyu.wang

* @package:com.shuyu.iterator

* @description:迭代器介面類

* @date 2018-11-22 22:46

**/public inte***ce iterator

/** * @author shuyu.wang

* @package:com.shuyu.iterator

* @description:聚集介面類

* @date 2018-11-22 22:49

**/public inte***ce aggregate

/** * @author shuyu.wang

* @package:com.shuyu.iterator

* @description:具體聚集類

* @date 2018-11-22 22:53

**/public class concreteaggregate implements aggregate

public int count()

public object getarraylistvalue(int id)

public void addarraylist(string value)

} @override

public object first()

@override

public object next()

@override

public object getcurrentitem()

}

測試**:

@runwith(springrunner.class)

@springboottest

@slf4j

@test

public void contextloads()

}}

執行結果:

迭代器模式

迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中各個元素,而不是暴露該物件的內部表示。乙個聚集物件,而且不管這些物件是什麼都需要遍歷的時候,你就應該考慮用迭代器模式。你需要對聚集有多種方式遍歷時,可以考慮用迭代器模式。為遍歷不同的聚集結構提供如開始,下乙個,是否結束,當前哪一項等統一...

迭代器模式

我最早接觸的設計模式就是迭代器模式了哈 為什麼要有迭代器模式呢?看下下面的 就知道了哈 對於乙個陣列物件sz 我們要怎麼遍歷呢?public void bianlisz class geweishu public myiterator getiterator private class geweis...

迭代器模式

迭代器模式 提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件多的內部表示。1 iterator抽象類 public abstract class iterator 2 aggregate聚集抽象類 public abstract class aggregate 3 concreteite...