Estou curioso sobre o impacto de não ter um construtor primário explícito no Scala, apenas o conteúdo do corpo da classe.
Em particular, eu suspeito que o padrão de construtor privado ou protegido, ou seja, a construção de controle por meio do objeto companheiro ou de outra classe ou métodos de objeto, pode não ter uma implementação óbvia.
Estou errado? Se sim, como isso é feito?
Você poderia ter um singleton Scala (com a palavra-chave object, isto é) e definir sua classe como privada dentro desse singleton e ter métodos do singleton para construir seus objetos.
—
Paggas
@Paggas, infelizmente, quando você retorna uma instância de uma classe marcada como privada fora de seu escopo, ela não compila, mesmo quando retornada de um método de seu objeto companheiro de escopo.
—
Don Mackenzie
Isso é feito profusamente em todo o código-fonte do Scalaz. O conceito também é conhecido como um tipo de dados algébrico abstrato .
—
Tony Morris