简单工厂模式

2021-08-03  本文已影响0人  易点梅

编程中的简单工厂就是一个生产对象的类,它的主要作用是创建具体的产品类实例

class SimpleFactory
    {
        private Car car;

        private string CarType = ConfigurationManager.AppSettings["brand"];

        public Car CreateCar(int number)
        {
            switch(CarType)
            {
                case "大众":
                    car = new 大众(number);
                    break;
                case "宝马":
                    car = new 宝马(number);
                    break;
                default:
                    car = null;
                    break;
            }
            return car;
        }
    }

    abstract class Car
    {
        public int number;

        public Car(int n)
        {
            number = n;
        }

        public abstract void Msg();
    }

    class 大众 : Car
    {
        public 大众(int number) : base(number) { }

        public override void Msg()
        {
            Console.WriteLine(number + " 一汽大众!");
        }
    }

    class 宝马 : Car
    {
        public 宝马(int number) : base(number) { }

        public override void Msg()
        {
            Console.WriteLine(number + " 华晨宝马!");
        }
    }

简单工厂的优点:

1.简单工厂可以有效地降低客户端和具体对象的耦合,将new具体对象的任务交给了一个简单工厂类
  2.可以有效的进行代码复用,如客户端A和客户端B都需要一个具体对象,客户端A和客户端B可以通过同一个简单工厂来获取具体类型的实例

简单工厂的缺点:

一定程度上违背了开闭原则,在新增产品时需要修改简单工厂类

上一篇 下一篇

猜你喜欢

热点阅读