我觉得最重要的是在逻辑上,当一个对象初始化到一半时,抛了异常的话,这个对象的状态应该如何定义?
不是全未初始化,也不是初始化完成。这种中间状态是要是扩散和暴露到外部代码中,会是很麻烦的。
如果说内部再维护一套更精细的状态指标,那完全不抛异常,用isReady之类的函数封装一下这个指标来指示这个对象的现状,也没什么麻烦。