SimpleFactory.cs 998 B

123456789101112131415161718192021222324252627282930313233
  1. namespace FactoryPattern
  2. {
  3. /// <summary>
  4. /// 产品枚举
  5. /// </summary>
  6. public enum ProductEnum
  7. {
  8. ConcreateProductA,
  9. ConcreateProductB
  10. }
  11. /// <summary>
  12. /// 简单工厂模式:
  13. /// 简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。
  14. /// 不修改代码的话,是无法扩展的。(如果增加新的产品,需要增加工厂的Swith分支)
  15. /// 不符合【开放封闭原则】
  16. /// </summary>
  17. public static class SimpleFactory
  18. {
  19. public static AbstractCar Create(ProductEnum productType)
  20. {
  21. switch (productType)
  22. {
  23. case ProductEnum.ConcreateProductA:
  24. return new ConcreateCarA();
  25. case ProductEnum.ConcreateProductB:
  26. return new ConcreateCarB();
  27. default:
  28. return null;
  29. }
  30. }
  31. }
  32. }