Показать сообщение отдельно
Старый 25.05.2013, 19:52
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 28  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от AlexCooper Посмотреть сообщение
в любом месте мне достаточно вызвать
GlobalVars.core.logic(GlobalVars.core.COMPLAINT_USER, {'uid':$uid,'remove':this} );
...
В чем минус такого решения?
1. Код с "сырыми" объектами никогда не будет гибким. А если COMPLAINT_USER потребуется объект с новым полем? Будете по всему проекту искать и добавлять? "Современные умные IDE" - не аргумент.
2. Свитч в методе logic может разрастись во много сотен строк монотонного кода.
3. Код с упоминанием GlobalVars.core.* станет не переносимым. Например, небольшой пакет из 5-10 классов заточенный выполнять какую-либо конкретную задачу не получится просто вытащить из репозитория и тут же начать использовать в новом проекте. Нужно будет либо удалять GlobalVars.core.*, либо тащить в новый проект GlobalVars.

Все зависит конечно от контекста, и возможно в вашем конкретном случае все это оправдано, но как правило концентрация логики в какой-то одной глобальной точке ни к чему хорошему не приводит.