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

          延遲加載的數據集合

          Posted on 2005-11-19 11:04 canonical 閱讀(336) 評論(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, 其內部采用分頁加載模式. 搜索引擎返回的結果和數據庫查詢的結果都可以使用這一接口.
          主站蜘蛛池模板: 日喀则市| 杭锦旗| 射阳县| 元谋县| 汕尾市| 汤阴县| 泊头市| 彝良县| 莱西市| 塔城市| 黔东| 镇安县| 旺苍县| 贵德县| 建湖县| 曲靖市| 巴彦县| 工布江达县| 宣武区| 商都县| 临江市| 文安县| 商河县| 普兰店市| 札达县| 牟定县| 博爱县| 宁化县| 西青区| 漳浦县| 秀山| 南部县| 建瓯市| 凉山| 崇义县| 中山市| 阳泉市| 衡南县| 乌拉特前旗| 七台河市| 泸州市|