工廠方法模式(Factory Method) 類圖 描述 工廠方法: 一個抽象產品類,可以派生多個具體產品類; 一個抽象工廠類,可以派生多個具體工廠類; 每個具體工廠只能創建一個具體產品。 應用場景 汽車介面 汽車類 汽車工廠介面 汽車工廠類 調用 ...
工廠方法模式(Factory Method)
類圖
描述
工廠方法:
一個抽象產品類,可以派生多個具體產品類;
一個抽象工廠類,可以派生多個具體工廠類;
每個具體工廠只能創建一個具體產品。
應用場景
汽車介面
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();