设计模式--工厂模式大集合

时间:2020-06-20 11:10:28   收藏:0   阅读:67
public enum CarEnum
    {
        BMWCar,
        MercedesCar,
        HondaCar,
    }

    public abstract class Car
    {
        public abstract Car CreateCar();
    }


    public class BMW : Car
    {
        public override Car CreateCar()
        {
            Console.WriteLine("哦天哪,宝马车造好了");
            return new BMW();
        }
    }

    public class Mercedes : Car
    {
        public override Car CreateCar()
        {
            Console.WriteLine("太好了,奔驰车造好了");
            return new Mercedes();
        }
    }

    public class Honda : Car
    {
        public override Car CreateCar()
        {
            Console.WriteLine("棒极了,本田车造好了");
            return new Honda();
        }
    }

 

1.简单工厂

  if..else..

  switch..case...

  

    /// <summary>
    /// 简单工厂模式,通过接收不同的参数,来创建不同的实例
    /// 缺点:不修改原有代码吗,无法扩展(如果增加新的产品,需要加入switch分支)
    /// 不符【开放封闭原则】
    /// </summary>
    public static class SimpleFactory
    {
        public static Car CreateCar(CarEnum carName)
        {
            Car car = null;
            switch (carName)
            {
                case CarEnum.BMWCar:
                     car = new BMW();
                    break;

                case CarEnum.MercedesCar:
                    car = new Mercedes();
                    break;

                case CarEnum.HondaCar:
                    car = new Honda();
                    break;
                default:
                    break;
            }
            return car;
        }
    }

 

原文:https://www.cnblogs.com/pltlfy/p/13167916.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!