21
5
内容纲要

设计模式中工厂方法包括了:简单工厂,工厂方法和抽象工厂,下面给出简单工厂和工厂方法的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
}

声明: 本文采用 BY-NC-SA 协议进行授权. 未标注“转”的文章均为原创,转载请注明转自: 设计模式:简单工厂和工厂方法的C#实现

公告栏

欢迎大家来到我的博客,我是dodoro,希望我的博客能给你带来帮助。