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