Вход

Просмотр полной версии : глобальные переменные


Yami
06.10.2009, 08:07
уже не первый раз натыкаюсь на совет "забудь о глобальных переменных" и т.п.
может кто обосновать? чем плохи глобальные переменные? про какие имеется ввиду, про переменные на уровне _level0 (_root) или про массив _global?

dimarik
06.10.2009, 10:52
Про любые глобальные переменные. Есть огромная вероятность пересечения имен переменных в разных проектах. Например, Ваш ролик загружает другой ролик, оба используют переменную _global.var (_level0.var / _root.var) в разных целях.

под рукой оказалась ссылка (http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html). В первой части статьи вкратце описаны недостатки глобальных переменных.

Yami
06.10.2009, 12:31
Эм.. ясно.. об этом думал, но в то же время считал, что это предусмотрено..=)
Какие альтернативные варианты существуют? Например, у меня есть набор переменных-установок, которые считываются из xml файла разово при запуске (загрузке) приложения. Сейчас они у меня в массиве _global.
Или же использовать обычный массив определенный в первом кадре?

dimarik
06.10.2009, 12:40
Или же использовать обычный массив определенный в первом кадре?

Это область видимости _root

Yami
06.10.2009, 14:00
ага, понятно... а что тогда использовать?

dimarik
06.10.2009, 14:11
Объектно-ориентированнное проектирование.