Я неоднократно сталкивался с этой проблемой проектирования и задавался вопросом, существует ли общий шаблон проектирования ООП, который ее устраняет.
Проблема разработки: мне нужно реализовать класс, представляющий коллекцию объектов, которые могут стать довольно большими. По соображениям производительности, уровень представления данных будет представлять данные на отдельных страницах, запрашивая только небольшое подмножество объектов за один раз, когда пользователь перемещается по данным. В идеале объект должен выборочно запрашивать БД по требованию, а не предварительно загружать все в память, когда очень вероятно, что для действительно больших коллекций клиент / пользователь никогда не будет запрашивать все данные в коллекции.
Я реализовал это несколькими способами, но ни один из них не кажется очень модульным, чистым или имеет действительно интуитивно понятный интерфейс.
Существует ли общий шаблон проектирования ООП для реализации объекта, который позволяет клиенту извлекать данные по одной странице за раз и умно запрашивает данные с уровня данных только по мере необходимости?