viewtopic.php?p=38759#p38759

> -- Galkov писал(а):
> В этом предложение ключевое слово - целесообразно У меня иные наблюдения про целесообразность.Как минимум, в 9 случаях из 10 этого не требуется. Но, серьезно влияет на эффективность кода. Как, впрочем, и на мозги того, кто этот код делает/читает

В некоторых случаях framework-ового типа удобно делать взаимодействие через глобальные структуры. Это позволяет гибко и полиморфно коммутировать компоненты (например, вызываем Обероновские команды, которые передают друг другу данные через какой-то глобальный буфер, как Юникс-конвейер). В принципе, если не использовать глобальные структуры для хранения, а только для передачи, проблем типа "глобальных побочных эффектов" это не вызывает. Взаимодействие через глобально известное место - вполне себе нормальный паттерн. Если мы не запускаем несколько потоков в одном рантайме (а этого лучше не делать).

Простота и расширяемость решения себя окупает, короче.

Иногда удобно для возвращаемых процедурой данных иметь глобальную структуру в её модуле.
Например, имеем модуль каких-то клиент-серверных запросов.
Удобно оформить этот модуль именно так. Тогда можно вызывать запросы и как команды, и программно. Ответ - через глобальные переменные.