锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>鍚嶇О Factory Method 緇撴瀯
鎰忓浘 瀹氫箟涓涓敤浜庡垱寤哄璞$殑鎺ュ彛錛岃瀛愮被鍐沖畾瀹炰緥鍖栧摢涓涓被銆侳actory Method 浣夸竴涓被鐨勫疄渚嬪寲寤惰繜鍒板叾瀛愮被銆?/td> 閫傜敤鎬?/td>
{
public abstract class LightFactory
{
public abstract Light CreateLight();
}
public class BulbLightFactory : LightFactory
{
public override Light CreateLight()
{
return new BulbLight();
}
}
public class TubeLightFactory : LightFactory
{
public override Light CreateLight()
{
return new TubeLight();
}
}
}
{
public abstract class Light
{
public abstract void TurnOn();
public abstract void TurnOff();
}
public class BulbLight : Light
{
public override void TurnOn()
{
Console.WriteLine("Bulb Ligh is Turned on.\n");
}
public override void TurnOff()
{
Console.WriteLine("Bulb Ligh is Turned off.\n");
}
}
public class TubeLight : Light
{
public override void TurnOn()
{
Console.WriteLine("Tube Ligh is Turned on.\n");
}
public override void TurnOff()
{
Console.WriteLine("Tube Ligh is Turned off.\n");
}
}
}
{
public class Client
{
public static void Main()
{
LightFactory BulbFactory = new BulbLightFactory();
LightFactory TubeFactory = new TubeLightFactory();
Light l1 = BulbFactory.CreateLight();
Light l2 = TubeFactory.CreateLight();
l1.TurnOn();
l1.TurnOff();
Console.WriteLine("===============\n");
l2.TurnOn();
l2.TurnOff();
}
}
}
]]>
]]>