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
}