Показать сообщение отдельно
Старый 16.06.2015, 18:03   #10  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,657 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от makbeth Посмотреть сообщение
Проблема выноса подобных функций в Global в том, что Global в итоге превращается в помойку, где можно что-то очень долго искать, и... в конце концов действительно найти.
(...)
Когда туда начинают сливать все подряд (ну а что, кому-нибудь пригодится же!), Global превращается не пойми во что с кучей непонятного и зачастую дублирующего друг друга функционала.
В итоге каждый раз начинаем искать то что нам подойдет:
Если в этой цитате заменить "Global" на "SysQuery" что-нибудь изменится? "Чисто (...) там, где не мусорят" (с)

Проблему дублирования кода и "превращение в помойку" заменой одного класса на другой не исправишь...

Цитата:
Сообщение от makbeth Посмотреть сообщение
ИМХО, Global - это место для расширения множества функций ядра, таких, как, например, расширения базовых функций работы со строками. Т.е. то, что не привязано к тому или иному специфическому функционалу.
Было бы желание... Кто мешает создать класс с именем, например "strFunction" или "sysFunction" и напихать именно в него все статические метода по работе со строками?

Цитата:
Сообщение от makbeth Посмотреть сообщение
Мне кажется намного удобнее, когда вспомогательные функции именно для работы с запросами собраны в одном классе SysQuery,
Как я уже говорил, вопрос удобства при частом использовании. Т.е. банально, вопрос личных предпочтений

Цитата:
Сообщение от makbeth Посмотреть сообщение
что в итоге значительно сужает область поиска.
Сомнительно... Помнить все классы просто не реально. Как правило, это кончается созданием личной библиотеки наиболее часто используемых "функций". Т.е. некой альтернативы класса Global, куда собираются "свои" статические методы.

Цитата:
Сообщение от makbeth Посмотреть сообщение
И другие такие примеры тоже есть, даже среди системных классов, например, DateUtil для utcdatetime или CLRInterop для работы с .NET. А есть еще, например, WinAPI/WinAPIServer
Гм... Сделайте поиск в классе Global по ключевым словам "DateTimeUtil", "CLRInterop", "WinAPI". Результат может Вас удивить

Кстати, в Ax2009 классы DateTimeUtil и CLRInterop являются системными и изменить их невозможно. Создавать отдельные классы для расширения их функциональности или все-таки методы Global?

Цитата:
Сообщение от makbeth Посмотреть сообщение
А почему его нельзя трогать?
Можно, конечно, только если работаешь с классом Global, то логично и изменения вносить в класс Global...
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...