声明init()
类型的方法是否有目的?
我不是问我们是否应该优先init()
于构造函数,或者如何避免声明init()
。
我问的是在声明方法(查看它的普遍性)后是否有任何理论依据,init()
或者它是否是一种代码味道,应避免使用。
这个init()
习语很普遍,但是我还没有看到任何真正的好处。
我说的是鼓励通过方法初始化的类型:
class Demo {
public void init() {
//...
}
}
什么时候可以在生产代码中使用它?
我觉得这可能是代码的味道,因为它表明构造函数未完全初始化对象,从而导致部分创建了对象。如果未设置状态,则该对象不应存在。
从企业应用的意义上讲,这使我相信它可能是某种用于加速生产的技术的一部分。这是我可以想到的惯用法,这是唯一合乎逻辑的原因,但我不确定是否会有这样的习惯。
init()
派生类上调用,反之亦然?)如果这样,它是让基类执行“后构造函数”的一个示例。 “只有在最派生的类完成构造后才能执行。这是多阶段初始化的示例。