设计模式:简单工厂和工厂方法的C#实现
设计模式中工厂方法包括了:简单工厂,工厂方法和抽象工厂,下面给出简单工厂和工厂方法的C#实现,你可以直接拷贝运行。 namespace Factory.Design.Pattern { class Program { static void Main(string[] args) { //设计模式之简单工厂 //LightSimpleFactory lsf = new LightSimpleFactory(); //Light lsb= lsf.Create("Blue"); //Light lsr = lsf.Create("Red"); //lsb.TurnOn(); //lsr.TurnOn(); //设计模式之工厂方法 CreatorMethod cb = new BlueCreator(); CreatorMethod cr = new RedCreator(); Light lb = cb.factory(); Light lr = cr.factory(); lb.TurnOn(); lr.TurnOn(); Console.ReadKey(); } } public abstract class Light { public abstract void TurnOn(); } public class BlueLight : Light { public override void TurnOn() { Console.WriteLine("Blue Light is turn on!"); } } public class RedLight : Light { public override void TurnOn() { Console.WriteLine("Red Light is turn on!"); } } #region 简单工厂 public class LightSimpleFactory { public Light Create(string LightType) { switch (LightType) { case "Blue": { return new BlueLight(); } case "Red": { return new RedLight(); } default: { return null; } } } } #endregion #region 工厂方法 public abstract class CreatorMethod { public abstract Light factory(); } public class BlueCreator : CreatorMethod { public override Light factory() { return new BlueLight(); } } public class RedCreator : CreatorMethod { public override Light factory() { return new RedLight(); } } #endregion }