我在周末写一些代码,发现自己想写一个工厂作为基类中的静态方法。
我的问题只是想知道这是否是ac#惯用语方法?
我认为可能不是因为基类具有派生类的知识。
也就是说,我不确定要获得相同结果的简单方法。整个其他工厂类(至少对我而言)似乎不需要的复杂性(?)
就像是:
class Animal
{
public static Animal CreateAnimal(string name)
{
switch(name)
{
case "Shark":
return new SeaAnimal();
break;
case "Dog":
return new LandAnimal();
break;
default:
throw new Exception("unknown animal");
}
}
}
class LandAnimal : Animal
{
}
class SeaAnimal : Animal
{
}