Sto vedendo molte classi istanziabili nel mondo C ++ e Java che non hanno nessuno stato.
Non riesco davvero a capire perché le persone lo facciano, potrebbero semplicemente usare uno spazio dei nomi con funzioni libere in C ++, o una classe con un costruttore privato e solo metodi statici in Java.
L'unico vantaggio che posso pensare è 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 più tardi, quando / se diventa appropriato.
Mi sto sbagliando? Non è OOP se non metto tutto in oggetti (ad esempio classi istanziate)? Allora perché ci sono così tanti namespace e classi di utility nelle librerie standard di C ++ e Java?
Aggiornamento: Ho sicuramente visto molti esempi di questo nei miei precedenti lavori, ma sto cercando di trovare esempi open source, quindi forse non è così comune dopo tutto. Tuttavia, mi chiedo perché la gente lo fa, e quanto sia comune.