Y a-t-il un but pour déclarer une init()
méthode pour un type?
Je ne demande pas si nous devrions préférer init()
un constructeur ou comment éviter de déclarerinit()
.
Je demande s'il y a une raison derrière la déclaration d'une init()
méthode (voir à quel point elle est courante) ou si c'est une odeur de code et devrait être évitée.
L' init()
idiome est assez courant, mais je n'ai encore vu aucun avantage réel.
Je parle de types qui encouragent l'initialisation via une méthode:
class Demo {
public void init() {
//...
}
}
Quand cela sera-t-il utile dans le code de production?
Je pense que cela peut être une odeur de code car cela suggère que le constructeur n'initialise pas complètement l'objet, résultant en un objet partiellement créé. L'objet ne devrait pas exister si son état n'est pas défini.
Cela me fait croire que cela peut faire partie d'une sorte de technique utilisée pour accélérer la production, au sens des applications d'entreprise. C'est la seule raison logique pour laquelle je peux penser à avoir un tel idiome, je ne suis tout simplement pas sûr de savoir comment cela serait bénéfique dans ce cas.
init()
dérivée, ou vice versa?) Si c'est le cas, c'est un exemple de laisser la classe de base exécuter un "post-constructeur "qui ne peut être exécuté qu'après la fin de la construction de la classe la plus dérivée. Il s'agit d'un exemple d'initialisation multiphase.