我使用这样的简单工厂模式:
public class Father
{
public virtual int field1;
public virtual int Dosth()
{
}
}
public class Son:Father
{
//inherit field1 from Father
public override int Dosth();//override Father's method
public string ex_field;
public string string Ex_method()
{
}
}
public class Factory
{
public static Father CreateObj(string condition)
{
switch(condition)
{
case("F"):
return new Father();
case("S"):
return new Son();
default:
throw new exception("you have no choice");
}
}
}
在代码中,我使用一个真正的类而不是抽象类作为工厂类。因为子类只是在父类基础中有一些扩展(大多数上下文可以使用父类)。如果父类和子类各自继承一个抽象类。类子不能继承父类的字段和方法。所以我的问题是:如果写成流,将来会发生什么不好的事情(我感觉不好但找不到更好的)?有没有更好的办法?