2011-11-02 653 views
1

我理解使用不同策略检索数据的核心概念。但我找不到一个好的总结/定义。什么是提取策略?

  • 它是一种设计模式吗?它是否适合更广泛的设计模式?
  • 是否特定于ORM实现? (Hibernate出现了很多)
  • 它是做什么的?是否(应该)返回值对象的集合,或者...您想要的任何东西?
  • 是否有共同的类和方法与之相关?

回答

0

我不知道抓取策略是对自己的一种设计模式,但确实是一类模式的一部分。两个示例是Lazy Loading和预取。另一个相关的概念是缓存。

他们不是具体以任何方式ORM休眠,但往往有提到需要配置以特定的方式采取行动的工具,而不是直接对其进行编码。总体而言,您的抓取策略控制着如何将数据检索到您的应用程序中,并且可能(或可能不)影响您的应用程序中实例化OO语言的对象的方式(或可能不会)。

例如,如果您通常遍历整个数据集(或一组对象),那么一次加载整个集或者有效地预取数据以使其准备就绪可能更有效处理。

另一方面,如果您经常只访问第一部分数据;或者可能是对象的包络而不是其内容,您可以选择仅初始化对象层次结构的顶层部分而不是其所有内容。