He sentido curiosidad por el impacto de no tener un constructor principal explícito en Scala, solo el contenido del cuerpo de la clase.
En particular, sospecho que el patrón de constructor privado o protegido, es decir, controlar la construcción a través del objeto complementario u otra clase o métodos de objeto, podría no tener una implementación obvia.
¿Me equivoco? Si es así, ¿Cómo se hace?
Podría tener un singleton Scala (con la palabra clave de objeto, es decir) y definir su clase como privada dentro de ese singleton, y tener métodos del singleton para construir sus objetos.
—
Paggas
@Paggas, desafortunadamente cuando devuelve una instancia de una clase marcada como privada fuera de su alcance, no se compilará, incluso cuando se devuelva desde un método de su objeto complementario dentro del alcance.
—
Don Mackenzie
Esto se hace con bastante profusión en todo el código fuente de Scalaz. El concepto también se conoce como un tipo de datos algebraicos abstractos .
—
Tony Morris