工厂模式存在的目的:提供创建一系列相关或相互以来对象接口,客户不需要知道这些类是怎么实现的,只管调用实例方法;代码示例:
public abstract class Light
{public abstract void TurnOn();
public abstract void TurnOff();
}
public class RedLight : Light
{
public override void TurnOn()
{
Console.WriteLine("Red Light is Turned on");
}
public override void TurnOff()
{
Console.WriteLine("Red Light is Turned off");
}
}
public class GreenLight : Light
{
public override void TurnOn()
{
Console.WriteLine("Green Light is Turned on");
}
public override void TurnOff()
{
Console.WriteLine("Green Light is Turned off");
}
}
public abstract class Creator
{
public abstract Light Factory();
}
public class RedCreator : Creator
{
public override Light Factory()
{
return new RedLight();
}
}
public class GreenCreator : Creator
{
public override Light Factory()
{
return new GreenLight();
}
}
class Program
{
static void Main(string[] args)
{
Creator c1 = new RedCreator();
Creator c2 = new GreenCreator();
Light l1 = c1.Factory();
Light l2 = c2.Factory();
l1.TurnOn();
l1.TurnOff();
Console.WriteLine("-----------------");
l2.TurnOn();
l2.TurnOff();
Console.ReadLine();
}
}