C'è qualche motivo per dichiarare un metodo init()
per un tipo?
Non sto chiedendo se dovremmo preferire init()
su un costruttore o come evitare di dichiarare init()
.
Sto chiedendo se c'è una qualsiasi logica dietro la dichiarazione di un metodo init()
(vedendo quanto è comune) o se si tratta di un odore di codice e dovrebbe essere evitato.
L'idioma init()
è abbastanza comune, ma non ho ancora visto 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?
Ritengo che possa 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 non è impostato lo stato.
Questo mi fa pensare che possa far parte di un qualche tipo di tecnica utilizzata per accelerare la produzione, nel senso di applicazioni aziendali. È l'unica ragione logica per cui riesca a pensare di avere un tale idioma, ma non sono sicuro di come sarebbe utile se fosse così.