迭代器模式:提供一種方法順序訪問乙個聚合物件中各個元素,而又不暴露該物件的內部元素;
為遍歷的物件提供乙個如開始、下乙個、是否結束、當前哪一項等統一的介面。
優點: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...