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

延迟加载的数据集合

Posted on 2005-11-19 11:04 canonical 阅读(311) 评论(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, 其内部采用分页加载模式. 搜索引擎返回的结果和数据库查询的结果都可以使用这一接口.

只有注册用户登录后才能发表评论。


网站导航: