设计模式之笔记--工厂方法模式(Factory Method)

工厂方法模式(Factory Method)

类图

设计模式之笔记--工厂方法模式(Factory Method)_第1张图片

描述

工厂方法:

一个抽象产品类,可以派生多个具体产品类;
一个抽象工厂类,可以派生多个具体工厂类;
每个具体工厂只能创建一个具体产品。

应用场景

汽车接口

    public interface ICar
    {
        void Print();
    }

汽车类

    public class Audi : ICar
    {
        public void Print()
        {
            Console.WriteLine("这是一辆奥迪车.");
        }
    }

    public class Benz : ICar
    {
        public void Print()
        {
            Console.WriteLine("这是一辆奔驰车.");
        }
    }

汽车工厂接口

    public interface ICarFactory
    {
        ICar CreateCar();
    }

汽车工厂类

    public class AudiFactory : ICarFactory
    {
        /// <summary>
        /// 生产汽车
        /// </summary>
        /// <returns></returns>
        public ICar CreateCar()
        {
            return new Audi();
        }
    }

    public class BenzFactory : ICarFactory
    {
        /// <summary>
        /// 生产汽车
        /// </summary>
        /// <returns></returns>
        public ICar CreateCar()
        {
            return new Benz();
        }
    }

调用

            string value = ConfigurationManager.AppSettings["factoryMethodPattern"];
            ICarFactory factory = (ICarFactory)Assembly.Load(value.Substring(0, value.IndexOf('.'))).CreateInstance(value);
            ICar car = factory.CreateCar();
            car.Print();

 

你可能感兴趣的:(设计模式之笔记--工厂方法模式(Factory Method))