Spesso mi trovo a confrontarmi con le classi helper o util in Java o con qualsiasi tipo di linguaggio. Quindi mi stavo chiedendo se si tratta di una sorta di Anti Pattern e l'esistenza di questo tipo di classi è solo una mancanza di missioni nel design e nell'architettura di un Software.
Spesso queste classi sono confinate usando solo metodi statici, che fanno molto di cose. Ma per lo più è effettivamente dipendente dal contesto e dallo stato.
La mia domanda è, qual è la tua opinione su questo tipo di helper statici / classi util perché il vantaggio è ovviamente l'invocazione rapida usando solo il nome della classe.
E a quale livello di astrazione eviterai di usare questo tipo di classi?
A mio parere, la parola chiave "statico" dovrebbe essere consentita solo all'interno della dichiarazione di una classe (Java) e non per i metodi. A mio parere è che utilizzandolo in questo modo, potrebbe essere una buona alternativa e mezzo per essere in grado di combinare Procuedural- e OO-Paradigms in Java ed evitare il mancato uso della parola chiave.
Aggiunte a causa delle risposte:
All'inizio penso che sia del tutto legale poter combinare diversi paradigmi e persino utilizzare i linguaggi di scripting interpretati in runtime all'interno di un codice compilato da macchina o VM.
La mia esperienza è che durante il processo di sviluppo di un progetto un tale tipo di helper e utils o qualunque sia il nome, sono in crescita e in uso in ogni angolo dimenticato del codebase, che originariamente era stato progettato per essere modulare e flessibile. E a causa della mancanza di tempo per fare i refactoring o per pensare di nuovo al design, lo rendi molto peggio nel tempo.
Penso che static
debba essere rimosso da Java. Soprattutto ora dove è possibile utilizzare elementi di linguaggio funzionale ancora più sofisticati.