В 1988 году пришел я к свому приятелю и говорю - "посмотри, какую я штуку придумал, а? Прелесть!" "Прелесть," - говорит, - "здорово! Называется - linked list. Молодец!".
В 1989 году пришел я к своему приятелю и говорю - "смотри, новая штука. Сюда пишем тута индексы и интерфейс для запроса..." "Класс," - говорит, - "здорово задумано. Хорошая вещь - реляционная база данных".
После кольцевого буффера и сортировки слиянием я уехал учиться. Надоело.
Теперь - по существу. Беда в том, что приоритет не всегда нужен. Всаживать приоритет во все очереди - на всякий случай нехорошо. Неэффективно. Все равно, что всаживать муттексы в класс string. Полезно иметь разные очереди: с приоритетом, FIFO и так далее (скажем, мне нужна была очередь, в которой все собщения имели ключ и, если приходило новое сообщение, пока старое с тем же кючом еще не было еще отправлено - его надо было заменить, а не добавлять). Все это - policies. Два варианта: или имплементировать набор разных очередей - для разных задач, или применить "метод Александреску" и делать templates with policy classes.
no subject
Date: 2003-05-29 11:42 am (UTC)В 1988 году пришел я к свому приятелю и говорю - "посмотри, какую я штуку придумал, а? Прелесть!"
"Прелесть," - говорит, - "здорово! Называется - linked list. Молодец!".
В 1989 году пришел я к своему приятелю и говорю - "смотри, новая штука. Сюда пишем тута индексы и интерфейс для запроса..."
"Класс," - говорит, - "здорово задумано. Хорошая вещь - реляционная база данных".
После кольцевого буффера и сортировки слиянием я уехал учиться. Надоело.
Теперь - по существу. Беда в том, что приоритет не всегда нужен. Всаживать приоритет во все очереди - на всякий случай нехорошо. Неэффективно. Все равно, что всаживать муттексы в класс string. Полезно иметь разные очереди: с приоритетом, FIFO и так далее (скажем, мне нужна была очередь, в которой все собщения имели ключ и, если приходило новое сообщение, пока старое с тем же кючом еще не было еще отправлено - его надо было заменить, а не добавлять). Все это - policies. Два варианта: или имплементировать набор разных очередей - для разных задач, или применить "метод Александреску" и делать templates with policy classes.