我們通過 Factory 創建對象不同的對象。
例如:如果創建一個汽車的接口,通過 工廠Factory 創建實現接口的對象,根據我們的選擇來創建不同的對象。
創建汽車接口
/// <summary> /// 簡單工廠模式 /// </summary> public interface IAutoCarMake { /// <summary> /// 創建汽車 /// </summary> void CreateAutoCar(); }
創建兩個派生類,分別實現創建不同顏色的兩種汽車
/// <summary> /// 紅色小轎車 /// </summary> public class _RedCar: IAutoCarMake { public void CreateAutoCar() { Console.WriteLine("生成紅色小轎車"); } } /// <summary> /// 藍色小轎車 /// </summary> public class _BlueCar : IAutoCarMake { public void CreateAutoCar() { Console.WriteLine("生成藍色小轎車"); } }
通過工廠類生成不同的對象實例
/// <summary> /// 簡單工廠模式-工廠類 /// </summary> public class Factory { public IAutoCarMake CreateAutoCar(string flag) { switch (flag) { case "red": return new _RedCar(); case "blue": return new _BlueCar(); } return null; } static void Main(string[] args) { IAutoCarMake parents = new Factory().CreateAutoCar("red"); IAutoCarMake parents = new Factory().CreateAutoCar("blue"); parents.CreateAutoCar(); Console.ReadKey(); } }