所以我有一个可以通过几种方式构建的对象。构造函数具有签名,例如从文件加载对象的签名:
Object::Object( string filenameToLoadFrom ) ;
它的行为方式非常简单。
Object( "filename.dat" ) ; // loads object from filename
构造函数签名几乎说明了它的作用,尽管静态方法Load
可能会更好:
static Object* Object::Load( string filenameToLoadFrom ) ;
(上面的语法有点不正确,但你明白了。)
然后我们会遇到构造函数所做的事情并不能从参数中 立即看出的情况。需要一个名称才能从 API 中清楚地看出构造函数的作用。
问题是,编写返回对象实例的静态方法是否是个好主意,只是为了能够命名构造函数?