Структура меню

Предыдущая  Содержание  Следующая V*D*V

Одним из недостатков перечисленных реализации является то, что структура MENU будет занимать одинаковый объём памяти, не зависимо от того, имеет меню две подсказки или все 25. Чтобы сэкономить место, программист мог бы создать несколько типов MENU, которые отличаются только с точки зрения максимально возможного количества подсказок (TINY_MENU, SMALL_MENU, MEDIUM_MENU, LARGE_MENU и так далее). Программист мог бы затем поместить каждое меню в соответственно определённую переменную, в зависимости от количества доступных подсказок. Соответствующий код можно найти в Листинге 4.

 

Для системы, которая выполняется из PROM, как правило, желательно поместить переменные MENU[] в PROM, запрещая их копирование с последующей ссылкой в оперативную память. Это может быть достигнуто созданием одного файла на языке Си (menus.c), который ничего не делает, но определяет или подключает заголовочный файл, который определяет переменные меню. Компилируйте такой файл с директивами, создающими результирующий объектный файл с уникальным сегментом. Затем системе расположения кода может быть приказано не копировать автоматически этот сегмент данных в оперативную память.

 

Это реализация системы текстового меню предоставляет интерфейс, который является масштабируемым с точки зрения количества меню, а также сложности набора функций. Представление меню как массива вариантов выбора делает структуры меню простыми для изменения и код хорошо поддаётся повторному использованию. Большая часть кода в обработчике ввода и функций подсказок будет идентична, ссылаясь на другие переменные системы. Добавление нового обработчика - это быстрая операция копирования и вставки. В самом деле, менеджер по развитию, возможно, начнёт видеть больше ошибок, вызванных копированием и вставкой кода программистом и забыванием изменить исходный код для новых потребностей. Тем не менее, преимущества повторного использования обычно перевешивают эту неприятность, особенно, если все участники предупреждены о такой ловушке.

Предыдущая  Содержание  Следующая