![]() |
Ваше мнение о глобальных функциях
Интересует ваше мнение о использовании глобальных функций. Вот у нас в команде один программист создал десяток глобальных методов для доступа к ресурсам (типа getTexture(), getXML(), getJSON()). Я же склоняюсь к тому, что это полная жесть, и надо делать так: Assets.getTexture()...
P.S. Кстати говоря, внутри этой глобальной getTexture() как раз находится Assets.getTexture(). Такие дела. |
Если разработчики старлинга изменят название функции Assets.getTexture(), или вы вовсе захотите использовать вместо старлинга другую библиотеку, твоему коллеге потребуется исправить лишь свою функцию getTexture(). Хотя оба случая маловероятны.
Минус в том, что при чтении кода ему приходится держать в голове, что же это за функция такая getTextures(). |
Ладно бы ему держать в голове. В команде 10 человек. А в старлинге не Assets, а AssetsManager.
|
Я нормально отношусь. В команде надо договариваться, но это уже другой вопрос. В целом ничего плохого в этих функциях не вижу. Тоже часто использую.
Плюс к тому, если они глобальные, значит лежат в корне, то их не надо нигде импортировать. Поэтому, как уже сказали выше, при любых изменениях, достаточно будет поправить код в этих функция, не парясь о куче импортов там и сям. Да и просто запись getTextures() короче, чем Assets.getTextures(), а любая нормальная IDE сразу покажет, что это глобалка, а не внутренняя функция п.с. Но опять же, тут еще многое зависит от структуры проекта. Если это какой-то фреймворк, который должен лежать в своем пакете целиком, то лучше от них отказаться п.п.с. Я обычно использую глобалки типа random(); или distance(); |
Я бы не стал плодить кучу мусорных функций ради того, чтобы сократить запись на одно слово.
Если предположить вариант, что производится несколько больше действий (например, какая-то предварительная обработка данных после получения их из менеджера, или хотя бы даже приведение типа), то в данном случае я бы сделал класс с набором статических методов, а не разрозненных функций из соображений порядка в коде, так как все эти функции объединены общим смыслом - получение определенного ресурса. |
Я стараюсь избегать глобальных/статических переменных. Возможно у меня мания преследования, но я стараюсь максимально закрыть или же скрыть прямой доступ к данным. В некоторых случаях использую "псевдо-регистр". В корне создаю класс R, геттеры которого отдают нужные мне экземпляры классов или методов, что позволяет получать
|
Цитата:
Не красиво такие записи как-то выглядят |
| Часовой пояс GMT +4, время: 02:47. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.