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; 我如何将所有对象归还在一起
答案 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网站:FactoryMethod和Abstract Factory以及Factory patterns上的此博客