Я часто сталкиваюсь с вспомогательными или утилитарными классами на Java или на любом другом языке. Поэтому я спрашивал себя, не является ли это своего рода Anti Pattern, а существование таких классов - просто отсутствие недостатков в дизайне и архитектуре программного обеспечения.
Часто эти классы ограничиваются использованием только статических методов, которые делают много вещей. Но в основном это действительно зависит от контекста и состояния.
Мой вопрос: каково ваше мнение о такого рода статических вспомогательных / утилитарных классах, потому что, конечно, преимущество заключается в быстром вызове с использованием только имени класса.
И на каком уровне абстракции вы бы избегали использования таких классов?
На мой взгляд, ключевое слово «static» должно быть разрешено только в объявлении класса (Java), а не для методов. По моему мнению, если использовать его таким образом, это может быть хорошей альтернативой и средним способом, чтобы иметь возможность комбинировать Procuedural- и OO-Paradigms в Java и избежать неправильного использования ключевого слова.
Дополнения из-за ответов:
Сначала я думаю, что вполне законно иметь возможность комбинировать различные парадигмы и даже использовать интерпретируемые во время выполнения языки сценариев в скомпилированном коде машины или vm.
Мой опыт показывает, что в процессе разработки проекта такие помощники и утилиты, или как там их называют, растут и растут и используются в каждом забытом уголке кодовой базы, которая изначально была разработана как модульная и гибкая. А из-за нехватки времени, чтобы провести рефакторинг или еще раз подумать о дизайне, вы просто сделаете его намного хуже со временем.
Я думаю, static
следует удалить из Java. Особенно сейчас, когда можно использовать еще более сложные функциональные языковые элементы.