SimpleFactory.cs 940 B

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