【设计模式】之 Simple Factory 简单工厂
2012-03-02 15:59
190 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DesignFactory { /// <summary> /// 简单工厂 /// </summary> public abstract class Light { public abstract void TurnOn(); public abstract void TureOff(); } public class BulbLight : Light { public override void TurnOn() { Console.WriteLine("Bulb light is Turned On"); } public override void TureOff() { Console.WriteLine("Bulb light is Turned off"); } } public class TubeLight : Light { public override void TurnOn() { Console.WriteLine("Tube light is Turned On"); } public override void TureOff() { Console.WriteLine("Tube light is Turned off"); } } public class LightSimplyFactory { public Light Create(string LightType) { if (LightType == "Bulb") { return new BulbLight(); } else if (LightType == "Tube") { return new TubeLight(); } else return null; } } public class Client { public static void Main() { LightSimplyFactory lsf = new LightSimplyFactory(); Light l = lsf.Create("Bulb"); l.TurnOn(); l.TureOff(); Console.WriteLine("---------------------------"); l = lsf.Create("Tube"); l.TurnOn(); l.TureOff(); } } }
/// <summary> /// SimpleFactory简单工厂的演变 /// </summary> public class Light2 { public virtual void TurnOn() { } public virtual void TurnOff() { } public static Light2 Create(string LightType) { if (LightType == "Bulb") { return new BulbLight2(); } else if (LightType == "Tube") { return new TubeLight2(); } else return null; } } public class BulbLight2 : Light2 { public override void TurnOn() { Console.WriteLine("Bulb light is Turned On"); } public override void TurnOff() { Console.WriteLine("Bulb light is Turned off"); } } public class TubeLight2 : Light2 { public override void TurnOn() { Console.WriteLine("Tube light is Turned On"); } public override void TurnOff() { Console.WriteLine("Tube light is Turned off"); } } public class Client2 { public static void Main() { Light2 l = Light2.Create("Bulb"); l.TurnOn(); l.TurnOff(); Console.WriteLine("---------------------------"); l = Light2.Create("Tube"); l.TurnOn(); l.TurnOff(); } }
相关文章推荐
- python设计模式(1)-Simple Factory(Static Factory)(简单工厂)
- 设计模式之简单工厂——Simple Factory
- 学习23种设计模式之简单工厂模式
- Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)
- Java与设计模式(01)--简单工厂模式
- 设计模式之简单工厂模式
- 设计模式之Factory1(简单工厂,工厂方法,抽象工厂的比较)
- 设计模式之简单工厂模式
- C#设计模式之简单工厂篇(转载)
- 设计模式一 简单工厂
- java深入浅出设计模式----简单的工厂模式(一)----初学者容易犯的错误(一)
- java简单工厂设计模式实现计算器
- C#设计模式之简单工厂篇
- 学习设计模式:简单工厂、模板方法、单例(上)
- 【设计模式】简单工厂模式
- 设计模式(二)工厂模式:1-简单工厂模式
- 设计模式——简单工厂模型
- Python 设计模式 -- 简单工厂模式
- java设计模式之工厂模式(简单工厂,工厂方法,抽象工厂)
- .Net学习笔记----2015-06-27(简单工厂设计模式)