构造函数什么时候抛出异常是正确的? (或者就 Objective C 而言:初始化器什么时候返回 nil 是正确的?)
在我看来,如果对象不完整,构造函数应该失败,从而拒绝创建对象。即,构造函数应该与其调用者签订合同,以提供一个功能性和工作对象,可以在其上有意义地调用方法?这合理吗?
构造函数的工作是使对象进入可用状态。对此基本上有两种思想流派。
一组赞成两阶段建设。构造函数只是将对象带入休眠状态,在该状态下它拒绝执行任何工作。还有一个附加函数可以执行实际的初始化。
我一直不明白这种方法背后的原因。我坚定地支持一阶段构造,其中对象在构造后完全初始化并可用。
如果单阶段构造函数未能完全初始化对象,则应抛出异常。如果对象无法初始化,则一定不允许它存在,因此构造函数必须抛出异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)