Posted on 2005-11-19 11:04
canonical 閱讀(332)
評論(0) 編輯 收藏 所屬分類:
Witrix開發平臺
在程序中需要返回一個數據集合的時候, 應該盡量選用標準的Java集合類接口,例如List, Map等.
有時也見到有人選擇返回Iterator對象, 一般情況下這不是很好的選擇. Iterator對象的功能有限, 而且存在一種即時消費的特點,
我們一般不能把一個Iterator保存起來留待以后使用. 而且JDK提供的集合類也不能從Iterator直接構造出來,例如沒有 new
ArrayList(myIterator), 這樣為數據復制造成一定的困難.
Iterator在理論上的好處之一是可以支持延遲加載數據, 但是實現起來比較繁瑣而且單條加載也是比較低效的. 在witrix平臺中如果需要延遲加載數據集合, 我一般選擇使用IPageViewer接口
interface IPageViewer{
public List getAll();
public int getTotalCount();
public List listPage(int startPos, int maxCount);
}
IPageViewer通過getAll()可以轉換到List, 也可以通過 new
Pager(pageViewer,pageSize).itemIterator()得到單條數據的Iterator, 其內部采用分頁加載模式.
搜索引擎返回的結果和數據庫查詢的結果都可以使用這一接口.