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(); } } }
调用者
本文介绍了一个具体的工厂模式应用案例,通过定义一个抽象工厂类及其实现来创建不同类型的产品实例。展示了如何利用工厂方法模式实现对象的创建过程,并通过具体例子说明了如何根据不同需求选择性地创建产品。
352

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



