tutorial software renault fungicida examples constructora blanquerna scala

software - scala tutorial



Constructor privado y protegido en Scala (2)

La respuesta de es correcta, pero la programación en Scala ofrece una alternativa adicional:

sealed trait Foo { // interface } object Foo { def apply(...): Foo = // public constructor private class FooImpl(...) extends Foo { ... } // real class }

Tengo curiosidad sobre el impacto de no tener un constructor primario explícito en Scala, solo los contenidos del cuerpo de la clase.

En particular, sospecho que el patrón de constructor privado o protegido, es decir, el control de la construcción a través del objeto complementario u otros métodos de clases o objetos, podría no tener una implementación obvia.

¿Me equivoco? Si es así, ¿Cómo se hace?


Puede declarar el constructor predeterminado como privado / protegido insertando la palabra clave apropiada entre el nombre de la clase y la lista de parámetros, de esta manera:

class Foo private () { /* class body goes here... */ }