迭代器模式

2021-07-02 05:50:36 字數 1385 閱讀 5096

uml類圖:

例項實現**:

abstract class aggregate

class concreteaggregate : aggregate

public int count

}public object this[int index]

set }}

abstract class iterator

class concreteiterator : iterator

public override object first()

public override object next()

return ret;

}public override object currentitem()

public override bool isdone()

}class concreteiteratordesc : iterator

public override object first()

public override object next()

return ret;

}public override object currentitem()

public override bool isdone()

}

客戶端實現:

static void main(string args)

請買車票!", i.currentitem());

i.next();

}console.read();

}

說明:提供一種方法順序訪問乙個聚合物件中各個元素,而又不需要暴露該物件的內部表示。

在cocoa touch框架中使用迭代器模式:

- ios開發中的「列舉」就是我們的迭代,基礎框架中的nsenumerator類實現了迭代器模式。抽象nsenumerator類的私有具體子類返回列舉器物件,能夠順序遍歷各種集合---陣列,集合,字典,把這些集合中的物件返回給客戶端。

- 基於塊的列舉,nsarray,nsdictionary,nsset物件中引入了新方法,用於基於塊的列舉,例如- (void)enumerateobjectsusingblock:(void (^)(id obj, nsuinteger idx, bool *stop))block;

- 快速列舉。

參考資料

-《大話設計模式》

-《objective-c程式設計之道》

迭代器模式

迭代器模式 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...