Hola MrClassic
Un constructor en una clase, has de mirarlo como un método especial de la clase que es ejecutado automáticamente al inicializar un objeto de dicha clase.
Hemos visto constructores de varios tipos
Vacíos. No hacen nada de nada
Sin parámetros. Inicializan a los valores por defecto
Con parámetros. Inicializan usando dichos parámetros.
Y también has visto un constructor que toma decisiones.
Yo no soy profesional. Pero asumo que mi constructor hará lo que yo necesite. Incluso me aventuro, a recopilar datos externos para inicializar según las necesidades de la aplicación.
No es común, pero no puede decirse que sea mala práctica.
Cuando un programador asume el solo la codificación de una aplicación, se impone él mismo sus propios límites, objetivos y demás.
Cuando el programador forma parte de un equipo que se reparte las tareas de crear la aplicación.
Es el equipo el que decide que cosas son obligatorias y que cosas son permisivas. Sin más.
Saludos