Veo muchas clases instanciables en el mundo de C ++ y Java que no tienen ningún estado.
Realmente no puedo entender por qué las personas hacen eso, simplemente podrían usar un espacio de nombres con funciones libres en C ++, o una clase con un constructor privado y solo métodos estáticos en Java.
El único beneficio que se me ocurre es que no tiene que cambiar la mayor parte de su código si luego decide que desea una implementación diferente en ciertas situaciones. ¿Pero no es ese un caso de diseño prematuro? Podría convertirse en una clase más tarde, cuando sea apropiado.
¿Me estoy equivocando? ¿No es OOP si no pongo todo en objetos (es decir, clases instanciadas)? Entonces, ¿por qué hay tantos espacios de nombres y clases de utilidades en las bibliotecas estándar de C ++ y Java?
Actualización: Ciertamente he visto muchos ejemplos de esto en mis trabajos anteriores, pero estoy luchando por encontrar ejemplos de código abierto, así que quizás no sea tan común después de todo. Aún así, me pregunto por qué la gente lo hace y qué tan común es.