namespace FactoryPattern
{
///
/// 产品枚举
///
public enum ProductEnum
{
ConcreateProductA,
ConcreateProductB
}
///
/// 简单工厂模式:
/// 简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。
/// 不修改代码的话,是无法扩展的。(如果增加新的产品,需要增加工厂的Swith分支)
/// 不符合【开放封闭原则】
///
public static class SimpleFactory
{
public static AbstractCar Create(ProductEnum productType)
{
switch (productType)
{
case ProductEnum.ConcreateProductA:
return new ConcreateCarA();
case ProductEnum.ConcreateProductB:
return new ConcreateCarB();
default:
return null;
}
}
}
}