设计模式之笔记--工厂方法模式(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(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步