Existe algum propósito para declarar um init()
método para um tipo?
Não estou perguntando se devemos preferir init()
a um construtor ou como evitar a declaraçãoinit()
.
Estou perguntando se existe alguma justificativa por trás da declaração de um init()
método (ver quão comum é) ou se é um cheiro de código e deve ser evitado.
O init()
idioma é bastante comum, mas ainda não vi nenhum benefício real.
Estou falando de tipos que incentivam a inicialização por meio de um método:
class Demo {
public void init() {
//...
}
}
Quando isso será útil no código de produção?
Eu sinto que pode ser um cheiro de código, pois sugere que o construtor não inicializa totalmente o objeto, resultando em um objeto parcialmente criado. O objeto não deve existir se seu estado não estiver definido.
Isso me faz acreditar que pode fazer parte de algum tipo de técnica usada para acelerar a produção, no sentido de aplicativos corporativos. É a única razão lógica pela qual consigo pensar em ter esse idioma. Só não tenho certeza de como isso seria benéfico.
init()
classe derivada ou vice-versa?) Em caso afirmativo, é um exemplo de deixar a classe base executar um "pós-construtor" "que só pode ser executado após a construção da classe mais derivada. É um exemplo de inicialização multifásica.