The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

14.8 Упражнения

14.8 Упражнения

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

Очевидно, обёртывание curses в подходящую иерархию классов является интересным упражнением для поклонников текстового терминала. Аналогично, наш эксперимент с калькулятором на X11 может быть проделан заново с OSF/Motif или другим пакетом.

Использование акселераторов, возможно, не самый естественный способ связать нажатия клавиш с вводом данных в наш калькулятор. Можно было бы, вероятно, сначала подумать о функциях действия. Однако, оказывается, что хотя функция действия знает, для чего применяется данный виджет, у неё нет разумного способа добраться из виджета до нашей обёртки. Либо кто-то перекомпилирует пакет для X с дополнительным указателем на пользовательские данные в записи экземпляра Object, либо мы должны создать подклассы некоторых виджетов пакета, чтобы предоставить именно такой указатель. Имея указатель, однако, мы можем создать мощную технологию на основе функций действия и нашего gate().

Идея gate() и wire() была более или менее заимствована из NeXTSTEP. Однако, в NeXTSTEP у класса может быть более одного выхода, то есть могут быть определены указатель на другой объект и, во время соединения обоих, фактический выход и метод, который будет использоваться на приёмном конце.

Сравнивая разделы 5.5 и 11.4 можно увидеть, что Var действительно должны наследоваться от Node и Symbol. Используя forward() мы могли бы избежать Val и его подклассов.

 

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