我是编程新手,所以想知道以下代码中是否存在难闻的气味?
public class TransportationInfo
{
public string TableName { get; private set; }
public string PKName { get; private set; }
public static TransportationInfo Bicycle = new TransportationInfo()
{
TableName = "bicycle_table",
PKName = "aaa"
};
public static TransportationInfo Moto = new TransportationInfo()
{
TableName = "moto_table",
PKName = "bbb"
};
public static TransportationInfo Car = new TransportationInfo()
{
TableName = "car_table",
PKName = "ccc"
};
public static TransportationInfo Bus = new TransportationInfo()
{
TableName = "bus_table",
PKName = "ddd"
};
public static void DoSomething()
{
// use TableName dosomething...
// use PKName dosomething...
}
}
然后,我可以使用代码片段在其他类中调用该函数
TransportationInfo.XXXXX.DoSomething()
但是,这种模式是否对整体有害?
最佳答案
通常,您会通过继承或接口来执行此类操作。
public abstract class TransportationInfo
{
public string TableName { get; protected set; }
public string PKName { get; protected set; }
public abstract void DoSomething();
}
public class Bicycle : TransportationInfo
{
public Bicycle()
{
TableName = "bicycle_table";
PKName = "aaa";
}
public override void DoSomething()
{
// use TableName dosomething...
// use PKName dosomething...
}
}
关于c# - 那么如何初始化许多静态实例呢?有人看过用法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39611195/