C'è uno scopo per dichiarare un init()
metodo per un tipo?
Non sto chiedendo se dovremmo preferire init()
un costruttore o come evitare di dichiarareinit()
.
Sto chiedendo se c'è qualche logica dietro la dichiarazione di un init()
metodo (visto quanto sia comune) o se è un odore di codice e dovrebbe essere evitato.
Il init()
linguaggio è abbastanza comune, ma devo ancora vedere alcun beneficio reale.
Sto parlando di tipi che incoraggiano l'inizializzazione tramite un metodo:
class Demo {
public void init() {
//...
}
}
Quando sarà mai utile nel codice di produzione?
Sento che potrebbe essere un odore di codice poiché suggerisce che il costruttore non inizializza completamente l'oggetto, risultando in un oggetto parzialmente creato. L'oggetto non dovrebbe esistere se lo stato non è impostato.
Questo mi fa credere che potrebbe far parte di un qualche tipo di tecnica utilizzata per accelerare la produzione, nel senso delle applicazioni aziendali. È l'unica ragione logica che posso pensare di avere un tale idioma, non sono sicuro di come sarebbe utile in tal caso.
init()
on derivata o viceversa?) In tal caso, è un esempio di come consentire alla classe base di eseguire un "post-costruttore "che può essere eseguito solo dopo che la classe più derivata ha terminato la costruzione. È un esempio di inizializzazione multifase.