工厂方法 FactoryMethod

类图

工厂方法 FactoryMethod_第1张图片

  abstract class FactoryParttern { public abstract ICommodity MakeCommodity(Commodity commodity); public ICommodity Make(Commodity commodity) { return MakeCommodity(commodity); } }

工厂方法抽象

using System; class ChinaFactory : FactoryParttern { public override ICommodity MakeCommodity(Commodity commodity) { switch (commodity) { case Commodity.Cap: return new Cap(); break; case Commodity.Shoes: return new Shoes(); break; case Commodity.Sock: return new Sock(); break; case Commodity.Trousers: return new Trousers(); break; default: throw new Exception("参数无效"); } } }

工厂方法抽象实现A

interface ICommodity { void Print(); }

产品接口

using System; class Cap : ICommodity { public Cap() { } public void Print() { Console.WriteLine("Im a Cap!"); } }

产品实现A

using System; class Shoes:ICommodity { public Shoes() { } public void Print() { Console.WriteLine("Im a Shoes!"); } }

产品实现B

 using System; class Sock : ICommodity { public Sock() { } public void Print() { Console.WriteLine("Im a Sock!"); } }

产品实现C

using System; class Trousers : ICommodity { public Trousers() { } public void Print() { Console.WriteLine("Im Trousers!"); } }

产品实现D

using System; using System.Collections.Generic; using System.Text; namespace FactoryPattern { class Program { static void Main(string[] args) { ICommodity commodity; ChinaFactory cf = new ChinaFactory(); commodity = cf.Make(Commodity.Sock); commodity.Print(); Console.ReadKey(); } } }

调用者

你可能感兴趣的:(exception,String,Class,IM,产品)