Sto vedendo molte classi istanziabili nel mondo C ++ e Java che non hanno alcuno stato.
Non riesco davvero a capire perché le persone lo facciano, potrebbero semplicemente usare uno spazio dei nomi con funzioni gratuite in C ++ o una classe con un costruttore privato e solo metodi statici in Java.
L'unico vantaggio che mi viene in mente è che non è necessario modificare la maggior parte del codice se in seguito si decide che si desidera un'implementazione diversa in determinate situazioni. Ma non è un caso di design prematuro? Potrebbe essere trasformato in una classe in seguito, quando / se diventa appropriato.
Sto sbagliando? Non è OOP se non metto tutto negli oggetti (ad es. Classi istanziate)? Allora perché ci sono così tanti spazi dei nomi e classi di utilità nelle librerie standard di C ++ e Java?
Aggiornamento: ho sicuramente visto molti esempi di questo nei miei precedenti lavori, ma sto lottando per trovare esempi open source, quindi forse non è poi così comune. Tuttavia, mi chiedo perché la gente lo faccia e quanto sia comune.