如果我有这样一个类:当一个构造函数实现另一个构造函数时,会有益处还是缺点?
public class Foo
{
public IEnumerable<Bar> Bars { get; set; }
public Foo()
{
Bars = new List<Bar>();
}
}
在某个阶段,我重新因子类,并添加它实现了第一个这样的二级构造:
public class Foo
{
public IEnumerable<Bar> Bars { get; set; }
// some more properties were added
public Foo()
{
Bars = new List<Bar>();
}
public Foo(string parameter): this()
{
.... some code here
}
}
我可以有也写它类似于这样:
public class Foo
{
public IEnumerable<Bar> Bars { get; set; }
// some more properties were added too
public Foo()
{
InitilizeFoo();
}
public Foo(string parameter)
{
InitilizeFoo();
.... some code here
}
private void InitializeFoo()
{
Bars = new List<Bar>();
}
}
看到无论是在这种情况下接近的工作,是有一个好处,或使用一个比其他优缺点?
继承constrcutors更有效率,并使代码执行更快或有一个缺点,我不知道如何使第二个实现更有效吗?
我同时使用。如果把建设者连在一起是有道理的,我就这样做;但有时(例子没有想到)我已经用'InitializeFoo()'方法并从所有构造函数中调用它。 – Nate
异常安全是我唯一担心的事情。 –