Показать сообщение отдельно
Старый 22.11.2015, 12:25
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 15  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Работает ведь и так. Это вопрос этики, или эффективности?
Эффективности и архитектуры. Если отовсюду использовать глобальный доступ, и у всего будут ссылки на всех и вся, то приложение превращается в такую задницу, в которой потом сам черт ногу сломит. Его будет невозможно не то что масштабировать, но и просто улучшать или исправлять баги. Будет сложно отыскать кто там реденок, а кто родитель, кто дядя, а кто тетя (образно говоря конечно). Постоянно будут появляться какие-то нелепые ошибки, типа попыток доступа к Null объектам, и будет совершенно непонятно откуда и каким образом они вылезают. Любое подобное приложение заходит в тупик в своем развитии. Но к пониманию как делать правильно нужно еще прийти. Все через это проходят, и у меня в свое время было много таких приложений, и я тоже задавался вопросом почему это нельзя делать везде глобальный доступ или передавать везде ссылки на Main класс, к примеру. И вот потом, когда все эти приложения заканчивались полным коллапсом, я начинал подробнее изучать то, как нужно делать правильно. Неспроста же появились все эти многочисленные шаблоны проектирования. Люди пытались выработать путь, которые будет наиболее правильным в том или ином случае. И наиболее удачные попытки превратились в такие "общепринятые" шаблоны.