设计模式之笔记--工厂方法模式(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(); } }