0

在对象构造函数中推断任何类型的函数是一种好习惯吗?例如,它是现有对象还是新对象?

我有一个类,根据使用的构造函数,它要么从数据库中提取,要么从头开始创建。我正在使用 C#,但这对这个问题并不重要。

4

2 回答 2

0

我更愿意将自定义逻辑放在客户端类中,用于创建实例或使用工厂方法而不是复杂逻辑的构造函数http://sourcemaking.com/design_patterns/factory_method

于 2012-05-17T10:46:13.080 回答
0

当然,调用虚方法会导致未定义的行为——因为基本​​构造函数在派生方法之前被调用——你不应该那样做。

其余的取决于。从构造函数调用的方法可能会导致副作用。例如,如果您在构造函数中订阅了一个事件,并且在构造函数结束之前调用了您的处理程序。构造函数主要用于为类成员设置初始值。

调用内部初始化方法应该没问题,但总的来说我建议避免它。

如果有一些复杂的初始化逻辑,可能你应该检查“Builder”模式。

于 2012-05-17T13:22:47.003 回答