返回抽象类型基类对象的列表

时间:2017-09-04 05:20:06

标签: c# oop

 public class ChildClassFactory
 {
    public List<BaseClass> Create(int[] numbers)
    {
         // Check: If got 2 items in array create the `Childclass`
       //        If got 3 create the `Child2class`. 
      //        Otherwise exception
      // here i want return all object togather
    }
}
public abstract class BaseClass // base class
{

}
public class Childclass : BaseClass // childclass1st
{

}
public class Child2class : BaseClass // childClass 2nd
{

}

在名为Create的Childclassfactory类方法中,返回类型为List&lt;&gt; 我如何将所有对象归还在一起

1 个答案:

答案 0 :(得分:1)

您可以使用Factory design pattern:它的简单实现是:

public class ChildClassFactory
{
    public BaseClass Create(int[] numbers)
    {
        if(numbers.Length == 2)
            return new Childclass(numbers[0], numbers[1]);
        if(numbers.Length == 3)
            return new Childclass(numbers[0], numbers[1], number[2]); 
        throw new SomeException();
    }
}

更复杂的实现在if else方法中不会有switch case(或create),但可以将输入委派给正确的创建者类。有关以下内容的详情,请参阅DoFactory网站:FactoryMethodAbstract Factory以及Factory patterns上的此博客