¿Hay algún propósito para declarar un init()
método para un tipo?
No estoy preguntando si deberíamos preferir init()
a un constructor o cómo evitar declararinit()
.
Estoy preguntando si hay alguna razón para declarar un init()
método (ver qué tan común es) o si es un olor a código y debe evitarse.
El init()
idioma es bastante común, pero aún no he visto ningún beneficio real.
Estoy hablando de tipos que fomentan la inicialización a través de un método:
class Demo {
public void init() {
//...
}
}
¿Cuándo será esto útil en el código de producción?
Siento que puede ser un olor a código, ya que sugiere que el constructor no inicializa completamente el objeto, lo que resulta en un objeto creado parcialmente. El objeto no debería existir si su estado no está establecido.
Esto me hace creer que puede ser parte de algún tipo de técnica utilizada para acelerar la producción, en el sentido de las aplicaciones empresariales. Es la única razón lógica por la que puedo pensar en tener un idioma así, simplemente no estoy seguro de cómo sería beneficioso si es así.
init()
a la clase derivada, o viceversa?) Si es así, es un ejemplo de permitir que la clase base ejecute un "post-constructor "que solo se puede ejecutar después de que la clase más derivada haya terminado la construcción. Es un ejemplo de inicialización de múltiples fases.