2010-06-22 165 views

回答

1

我假设你正在谈论正在初始化的类的其他私人/公共职能。

像其他地方一样,我会说分解大型复杂的行为到子功能是很好的做法。

明显的复杂情况是调用依赖于尚未初始化的对象内容的函数。

由于构造函数和其他函数在类中具有相同的可见性(从代码可维护性的角度来看),我认为这不是不合理的说,可以利用其他函数但对于程序员确保避免这种循环依赖(如虚函数)。

1

如果我有很多其他重载版本的构造函数需要用同样的方法初始化类,我有时会在我的对象的构造函数中放入一个init()调用。这是干的。

0

如果这些方法是虚拟的,则不应该。无论如何,只要确保你的构造函数失败(或者它调用的某个方法失败),你的构造函数就会“catch”来对它分配的任何IDisposables执行Dispose()。

+0

...并且不要忘记重新抛出异常。 – 2010-06-22 02:27:30

+0

Thanx的答案球员。我问这个问题的原因是框架设计指南书说,构造函数应该尽可能简单,只应该用于初始化purpose.But如果我必须从数据库设置一些属性创建一个类的实例。如果我有一个项目类。我想创建一个类传递一个投影参数到类构造器的实例,如 Project proj = new Project(projectid); 然后我想检查proj.HasForecasts属性。这是从数据库设置的。我可以通过调用构造函数 – SRK 2010-06-22 02:56:45

+0

中的方法来设置此属性是的,您可以在构造函数中完成这项工作,但我可能会考虑在Project类中使用静态“Create”方法。 – 2010-06-22 20:35:10

相关问题