posts - 176, comments - 240, trackbacks - 0, articles - 7

          延遲加載的數據集合

          Posted on 2005-11-19 11:04 canonical 閱讀(333) 評論(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, 其內部采用分頁加載模式. 搜索引擎返回的結果和數據庫查詢的結果都可以使用這一接口.
          主站蜘蛛池模板: 呈贡县| 海宁市| 绍兴市| 宁陵县| 霍山县| 商洛市| 敦化市| 洛扎县| 明星| 宁武县| 扎鲁特旗| 天气| 西充县| 安陆市| 望谟县| 遵义市| 洛宁县| 无为县| 山西省| 通渭县| 北票市| 西畴县| 岑溪市| 乐亭县| 阿城市| 尤溪县| 宁陵县| 田阳县| 卢龙县| 松原市| 扎兰屯市| 灌云县| 武陟县| 武穴市| 临武县| 湖南省| 冷水江市| 响水县| 吉林省| 油尖旺区| 关岭|