Где я могу найти больше деталей реализующего шаблона популяризированным Ken Auer?

Я не думаю, что Вы собираетесь стать намного быстрее, чем dd. Узкое место является диском; запись сотен ГБ данных к нему собирается занять много времени, неважно, как Вы делаете это.

, Но вот возможность, которая могла бы работать на Ваше приложение. Если Вы не заботитесь о содержании файла, как насчет того, чтобы создать "виртуальный" файл, содержание которого является динамическим выводом программы? Вместо открытого () луг файл, используйте popen () для открытия канала для внешней программы. Внешняя программа генерирует данные каждый раз, когда это необходимо. Как только канал открыт, он действует точно так же, как регулярный файл в этом программа, которая открыла канал, может fseek (), перемотка (), и т.д. Необходимо будет использовать pclose () вместо завершения (), когда Вы будете сделаны с каналом.

, Если для Вашего приложения нужен файл, чтобы быть определенным размером, это будет до внешней программы для отслеживания то, где в "файле" это, и отправьте eof, когда "конец" был достигнут.

5
задан Piotr Dobrogost 15 July 2009 в 06:38
поделиться

1 ответ

Шаблон активатора на самом деле всего лишь вариант шаблона наблюдателя. Вы настраиваете наблюдателей на интересные части системы, создавая условия. Затем активаторы могут наблюдать за условиями и включать / отключать виджеты.

Например, когда вы загружаете окно, вы создаете условия, которые отслеживают такие вещи, как список или поле со списком (или модель под списком или полем со списком) выбрано. Вы можете назвать это как-то вроде «somethingSelectedCondition». Затем вы подключаете активаторы к виджетам, которые привязаны к одному или нескольким условиям (которые вы можете и / или вместе ... хотя обычно вы просто хотите, чтобы они были вместе на практике).

Я обычно реализую их, имея виджет factory таким образом, что один из передаваемых вами параметров представляет собой массив именованных условий, которые, будучи объединены вместе, включают / отключают виджет. Например

5
ответ дан 14 December 2019 в 19:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: