Sou frequentemente confrontado com classes auxiliares ou util em Java ou qualquer tipo de linguagem. Então, eu estava me perguntando se isso é algum tipo de anti-padrão e a existência desse tipo de classe é apenas uma falta de falta no design e na arquitetura de um software.
Frequentemente, essas classes são confinadas usando apenas métodos estáticos, que fazem muitas coisas. Mas, na maioria das vezes, é de fato dependente do contexto e cheio de estado.
Minha pergunta é: qual é a sua opinião sobre esse tipo de classes auxiliares / utilitárias estáticas, porque a vantagem é, obviamente, a chamada rápida usando apenas o nome da classe.
E em que tipo de nível de abstração você evitaria usar esse tipo de classe?
Na minha opinião, a palavra-chave "estático" deve ser permitida apenas dentro da declaração de uma classe (Java) e não para métodos. Na minha opinião, é possível usá-lo dessa maneira, uma boa alternativa e meio caminho para combinar os Paradigmas de Procedimentos e OO em Java e evitar o uso incorreto da palavra-chave.
Acréscimos devido às respostas:
No começo, eu acho que é completamente legal poder combinar paradigmas diferentes e até mesmo usar linguagens de script interpretadas em tempo de execução no código compilado por máquina ou vm.
Minha experiência é que, durante o processo de desenvolvimento de um projeto, esse tipo de ajudante e utilitário, ou qualquer que seja o nome, está crescendo e crescendo e usado em todos os cantos esquecidos da base de código, que foi originalmente projetada para ser modular e flexível. E devido à falta de tempo para fazer refatorações ou pensar novamente no design, você só piora com o tempo.
Eu acho que static
deve ser removido do Java. Especialmente agora, onde é possível usar elementos de linguagem funcional ainda mais sofisticados.