Re: Виртуальные списки
От: korzhik Россия  
Дата: 27.04.05 07:41
Оценка: 16 (1)
Здравствуйте, Mamut, Вы писали:

M>Доброе время суток.


M>Интересует идеологически правильное создание виртуальных списков.


M>Задача: Необходим список, могущий отображать элементы, количество которых может изменяться за время существования списка (из-за фильтров, изменения данных, откуда берется список и т.п.) Также необходима возможность сортировки списка по различным критериям.


M>Интересует не готовое решение, а общий подход к решению такой проблемы.


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

Обычно делаю следующим образом:
Есть класс storage, который хранит все данные.
Есть класс recordset, который хранит итераторы storage (typedef std::vector<storage::iterator> recordset)
у storage есть различные функции обработки (sort, select(filter) ...часто можно сделать одну функцию execute(recordset&, const query&) ). которая заполняет recordset.
Вид который является владельцем вирт. списка хранит у себя recordset.

Примерно так. Идеологическую правильность не гарантирую

M>Буду благодарить оценками, если пнете меня в нужном направлении.


Ничяго не надо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.