2005-11-19
延迟加载的数据集合
在程序中需要返回一个数据集合的时候, 应该尽量选用标准的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, 其内部采用分页加载模式. 搜索引擎返回的结果和数据库查询的结果都可以使用这一接口.
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, 其内部采用分页加载模式. 搜索引擎返回的结果和数据库查询的结果都可以使用这一接口.
- 11:04
- 浏览 (367)
- 评论 (0)
- 分类: Witrix开发平台
- 相关推荐
发表评论
- 浏览: 107244 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
关于REST
说的太抽象,看完之后好像是理解了,又好像很模糊。
-- by zjq_blog -
[导入]关于jsplet的一些 ...
我有一个疑问:把一个request || response带入到biz里面会不会 ...
-- by deepthink -
C++配置管理
boost里已经有现成的啦!
-- by jimmy_c -
不完全的计算
当我们 oo 的时候,一般都不认为自己在“计算”,当我们计算的时候,根本就想不起 ...
-- by hotman_x -
面向集合的框架设计
嘿嘿,说句不合时宜的话,一个事物“完美”是因为它已经没有价值,没有改进的必要。费 ...
-- by hotman_x






评论排行榜