Что такое стратегия извлечения?

Я понимаю основную концепцию получения данных с использованием различных стратегий. Но я не могу найти хорошее резюме / определение..

  • Это шаблон дизайна? Это вписывается в более широкий шаблон дизайна?
  • Это специфично для реализаций ORM? (Hibernate приходит много)
  • Что оно делает? Возвращает ли (должен) ли это коллекцию объектов-значений или... что-нибудь, что вы хотите?
  • Есть ли общие классы и методы, связанные с одним?

1 ответ

Решение

Я не уверен, что стратегия выборки сама по себе является шаблоном проектирования, но действительно является частью класса шаблонов. Два примера: Ленивая загрузка и Предварительная выборка. Еще одной связанной концепцией будет кэширование.

Они никак не связаны с ORM или Hibernate, но часто упоминаются там, так как вам нужно настроить инструмент так, чтобы он действовал определенным образом, а не кодировал его напрямую.

В целом, ваша стратегия выборки контролирует, как вы извлекаете данные в свое приложение, и может (или не может) влиять на то, как создаются экземпляры объектов в вашем приложении для языка OO.

Например, если вы обычно просматриваете весь набор данных (или набор объектов), то может оказаться более эффективным загрузить сразу весь набор или эффективно предварительно извлечь данные, чтобы они были готовы к обработке.

С другой стороны, если вы часто обращаетесь только к первой части данных; или, возможно, конверт объекта вместо его содержимого, вы можете выбрать создание экземпляра только части верхнего уровня иерархии объектов вместо всего его содержимого.

Другие вопросы по тегам