我目前有以下代码模式,其中我在通用类 MyClass 的构造函数中初始化 MyThing 类型的特定对象。然而,在某些特定的派生类示例(例如 MySpecialClass)中,我想使用 MyThing 的派生版本,我称之为 MySpecialThing。
public class MyClass
{
public MyClass()
{
this.MyThing = new MyThing();
}
public MyThing MyThing { get; set; }
}
public class MySpecialClass : MyClass
{
public MySpecialClass()
{
this.MyThing = new MySpecialThing();
}
}
我的问题是这是否是不好的做法,因为实际上 MyThing 属性被初始化了两次,一次在基类中,一次在派生类中。显然,我可以将布尔值传递给基类构造函数或告诉它不要打扰初始化 MyThing 的东西,但这可能有点矫枉过正......