rator,客户机对象能一下子重新获得一个子列或者页的 Value Object,每一页都刚好满足 客户机的需求,因此,程序使用较少的资源满足了客户机的立刻需求。 在 Java Pet Store 这个例子中,
JSP 页面 product.jsp 任何时候只显示一个数据列的一部分,从 ProductItemListTag(Page-by-Page Iterator)重新获得数据项,当客户机希望看到列中的别的数 据项,product.jsp 再次调用 Iterator 重新获得这些数据项,流程见图 5:
图 5 Page-by-Page Iterator 设计模式 以上设计模式的应用向我们表明,在某些特殊情况下,优化对数据库的访问模型,既可满足用户的需 求又可提高访问数据库的效率。 这给我们一个思路, 就是: 在你的硬件环境可能会产生瓶颈的情况下, 可以通过对软件模型的优化来达到满足需求的目的。上述三种设计模式的应用情形为: 需要将商业逻辑和数据存取逻辑分离; Data Access Object 在调度的时刻,需要支持选择数据源的类型; 使用的数据源的类型的变化, 对商业对象或其它客户端完成数据存取没有影 响。 Fast Lane Reader 面对大型的列数据,需要经常的只读访问; 访问最新的数据并不是至关紧要的事情。 存取大型的服务器端数据列; Page-by-Page Iterator 任何时刻,用户只对列的一部分内容感兴趣; 整个列的数据不适合在客户端显示; 整个列的数据不适合在存储器中保存; 传输整个列的数据将耗费太多的时间。 在显示商品目录的时候,我们选择了 DAO 和 FLR