我有一个抽象类,其中包含依赖于类级变量的方法。但是,这些变量的值是在从抽象继承的类中设置的。
我写了这个,以便在构造函数中设置变量 - 这似乎是迄今为止最巧妙的事情。但我只是觉得有点不舒服——它们看起来应该是抽象的属性。我只是无法说出我为什么会有这种感觉。
这是我实际所做的简化示例:
public abstract class TestBase
{
protected string itemType;
}
public class TestClass1 : TestBase
{
public TestClass1()
{
itemType = ConfigurationManager.AppSettings["TestClass1.ItemType"];
}
}
public class TestClass2 : TestBase
{
public TestClass2()
{
itemType = ConfigurationManager.AppSettings["TestClass2.ItemType"];
}
}
所以,问题是:
1)这是不好的做法吗?
2)如果是这样,为什么,什么更好?
3)这是一个测试类,用于回归测试而不是部署在任何地方。是否有充分的理由像示例中那样在 config 中设置我的类级变量,或者可以对它们进行硬编码?我总是倾向于默认配置。
干杯,马特