A menudo me enfrento con clases auxiliares o de utilidad en Java o cualquier tipo de lenguaje. Entonces me preguntaba si esto es algún tipo de Anti Pattern y la existencia de este tipo de clases es solo una falta de fallas en el diseño y la arquitectura de un Software.
A menudo, estas clases se limitan utilizando solo métodos estáticos, que hacen muchas cosas. Pero sobre todo depende del contexto y tiene estado.
Mi pregunta es, ¿cuál es su opinión sobre este tipo de clases auxiliares / util estáticas porque la ventaja es, por supuesto, la invocación rápida usando solo el nombre de la clase?
¿Y a qué tipo de abstracción evitarías usar este tipo de clases?
En mi opinión, la palabra clave "estática" debería permitirse dentro de la declaración de una clase (Java) y no para los métodos. En mi opinión, usarlo de esta manera podría ser una buena alternativa y un medio para poder combinar Procuedural- y OO-Paradigms en Java y evitar el mal uso de la palabra clave.
Adiciones debido a las respuestas:
Al principio, creo que es completamente legal poder combinar diferentes paradigmas e incluso usar lenguajes de script interpretados en tiempo de ejecución dentro de código compilado de máquina o vm.
Mi experiencia es que durante el proceso de desarrollo de un proyecto, este tipo de ayudantes y utilidades, o como se llame, crecen y crecen y se usan en cada rincón olvidado de la base de código, que originalmente fue diseñada para ser modular y flexible. Y debido a la falta de tiempo para hacer refactorizaciones o pensar en el diseño nuevamente, solo lo empeora mucho con el tiempo.
Creo que static
debería eliminarse de Java. Especialmente ahora donde es posible usar elementos de lenguaje funcional aún más sofisticados.