model里class Base
{
  int nBase;
}class ChildA : Base
{
  int nChildA;
}class ChildB : Base
{
  int nChildB;
}contorl里
我想根据客户端传来的一个字符:A或B,以及一个实体对象,可能是A类或B类
来判断生成实际的对象,并将对象入数据库。
应该如何设计?

解决方案 »

  1.   

            public static ModelBase MakeModel(string Name)
            {
                ModelBase modelbase = null;
                try
                {
                    Type type = Type.GetType(Name, true);
                    modelbase = (ModelBase)Activator.CreateInstance(type);
                }
                catch (TypeLoadException ex)
                {
                }
                return modelbase;        }
    这样返回的还是base类吧?
      

  2.   

    简单工厂(SimpleFactory)用户请求一个产品,工厂创建不同的子类产品,然后作为父类产品返回。
    public Base CreateProduct(string type,int nChild)
    {
          Base base = null;      //利用开关语句(switch case)对类型进行判断
           switch(type)
          {
              case"ChildA":
                  base = new ChildA(nChild);
                  break;
              case"ChildB":
                  base = new ChildB(nChild);
                  break;
          }      return base;
    }
    简单工厂详解