Да, вспомогательные классы являются хорошей идеей, но, как и все объектно-ориентированного программирования, вы должны стремиться к максимальной сплоченности, минимальной связью.
Максимальное сцепление означает, что все в одном классе должно быть сильно связано друг с другом. Минимальная муфта означает, что не должно быть ненужных зависимостей между классами.
Другими словами, совместное сжатие при манипулировании изображениями или запуск внешних процессов в одном классе - плохая идея. Во всех смыслах есть класс утилиты сжатия и класс утилиты для управления изображениями, но не объединить их.
Выполнение этого сродни использованию шаблона singleton как объекта-бога, гетто, где вы просто сбрасываете весь свой мусор, который должен быть лучше организован. Я бы сказал, что во время разработки использовать класс uber-utility, но убедитесь, что ваш код лучше организован перед отправкой. Техническое обслуживание будет намного проще.
Это хорошая практика?
Нет, не в долгосрочной перспективе, хотя это полезно, когда делается временно.
Будут ли вещи расти неуправляемыми, когда количество функций становится все больше и больше?
Да, не вопрос.
Я думаю, что это заканчивается довольно стандартным. Тем не менее, я бы разломил его. 'FileUtils' и' ImageUtils' и т. Д. – Mike
Да, я обычно так делаю. Если он становится большим, я классифицирую их, как упоминал Майк. –
Для меня нет никакой разницы в программном обеспечении для функций «полезности» и других частей проекта. Я создаю структуры классов, необходимые для решения проблемы, и это не отличается для конкретных функций проекта или более общих функций. – Kwebble