表 1-1 類和介面的一覽表
名字說明
aggregate
表示集合的介面
iterator
遍歷集合的介面
book
表示書的類
bookshelf
表示書架的類
bookshelfiterator
遍歷書架的類
main
測試程式行為的類
/**
* aggregate介面
*/public
inte***ce
aggregate
/**
* iterator介面
*/public
inte***ce
iterator
/**
* book類
*/public
class
book
public
book
(string name)
public string getname()
}
/**
* bookshelf類
*/public
class
bookshelf
implements
aggregate
public book getbookat
(int index)
public
void
(book book)
public
intgetlength()
public iterator iterator()
}
/**
* bookshelfiterator類
*/public
class
bookshelfiterator
implements
iterator
public
boolean
hasnext()
public object next()
}
/**
* main類
*/public
class
main類
}}
為什麼要引入ierator這種設計模式?因為引入了iterator後可以將遍歷與實現分離開來。看遍歷的**:
while
(iterator.
hasnext()
)
這裡只使用了iterator的hasnext方法和next方法,並沒有呼叫bookshelf方法。也就是說,這裡的while迴圈不依賴於bookshelf的實現。如果編寫bookshelf的開發人員決定放棄用陣列來管理文字,而是用其他的容器類,那麼只需要bookshelf的iterator方法能正確地返回iterator例項,我們不需要更改在業務中的while迴圈迭代遍歷的**,**都可以正常工作。
JAVA設計模式 Iterator迭代器模式
迭代器模式 類似於for迴圈式的 段在日常開發過程中是很經常用到的,所有有了iterator模式。既然簡單的for迴圈能實現,為什麼要引入迭代器模式呢?因為iterator可以跟實現分開,單獨進行遞增。後面會詳細分析。下面通過乙個例子來看一下迭代器模式的使用。例子是乙個書架,可以往書架上放書本。為了...
JAVA設計模式 Iterator迭代器模式
迭代器模式 類似於for迴圈式的 段在日常開發過程中是很經常用到的,所有有了iterator模式。既然簡單的for迴圈能實現,為什麼要引入迭代器模式呢?因為iterator可以跟實現分開,單獨進行遞增。後面會詳細分析。下面通過乙個例子來看一下迭代器模式的使用。例子是乙個書架,可以往書架上放書本。為了...
設計模式學習筆記 迭代器 Iterator 模式
設計模式 設計模式,迭代器模式,iterator,迭代器 迭代器模式中的角色 迭代器模式是從集合中取出元素進行遍歷。迭代器模式主要用於將資料的遍歷訪問與實現進行分離。迭代器種類有很多,像是由前往後,由後往前,跳躍遍歷等等。aggregate介面 package com.pc.iterator.exa...