简单工厂模式

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

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可以通过同一个简单工厂来获取具体类型的实例

简单工厂的缺点:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容