/// <summary> /// 運用工廠模式,根據傳入值回傳對應的英雄類別 /// </summary> /// <param name="weaponType">傳入選項的值</param> /// <returns></returns> public static IAvengers GetAvenger(string weaponType) { IAvengers avenger; if (weaponType == "1") { return(avenger = new IronMan()); } if (weaponType == "2") { return(avenger = new CaptainAmerica()); } return(null); }
static void Main(string[] args) { AvengerBuilder builder; Avengers avengers = new Avengers(); builder = new CaptainAmerica(); avengers.Assemble(builder); Console.Write(builder.Avenger.ToString()); builder = new BlackWidow(); avengers.Assemble(builder); Console.Write(builder.Avenger.ToString()); avengers.Assemble(new [] { (AvengerBuilder) new CaptainAmerica(), (AvengerBuilder) new BlackWidow() }); Console.ReadKey(); }