using System; class SimpleFactoryMethod { public SimpleFactoryMethod() { } public ICommodity MakeCommodity(Commodity commoditytype) { switch (commoditytype) { 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("参数无效"); } } }
简单的工厂方法类
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; IFood food; SimpleFactoryMethod sfm = new SimpleFactoryMethod(); ICommodity commodity = sfm.MakeCommodity(Commodity.Sock); commodity.Print(); Console.ReadKey(); } } }
调用代码
本文介绍了一个使用简单工厂模式创建不同类型商品对象的例子。通过定义一个商品接口和具体商品类,结合简单工厂方法来实例化不同商品,展示了模式的灵活性。
91

被折叠的 条评论
为什么被折叠?



