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

工厂方法模式(Factory Method)

定义

       工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

类图

描述

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

应用场景

      汽车的种类有奥迪、奔驰等,汽车厂的种类有奥迪汽车厂、奔驰汽车厂等,每种汽车厂负责生产各自的汽车。

    /// <summary>
    /// 汽车接口
    /// </summary>
    public interface ICar
    {
        void Print();
    }

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

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

    /// <summary>
    /// 汽车工厂接口
    /// </summary>
    public interface ICarFactory
    {
        ICar CreateCar();
    }

    /// <summary>
    /// 具体的奥迪工厂类
    /// </summary>
    public class AudiFactory : ICarFactory
    {
        /// <summary>
        /// 生产汽车
        /// </summary>
        /// <returns></returns>
        public ICar CreateCar()
        {
            return new Audi();
        }
    }

    /// <summary>
    /// 具体的奔驰工厂类
    /// </summary>
    public class BenzFactory : ICarFactory
    {
        /// <summary>
        /// 生产汽车
        /// </summary>
        /// <returns></returns>
        public ICar CreateCar()
        {
            return new Benz();
        }
    } 
原文地址:https://www.cnblogs.com/zhou-yi/p/5314537.html