试例代码
//道路
public abstract class Road
{
}
//建筑
public abstract class Building
{
}
//地道
public abstract class Tunnel
{
}
//丛林
public abstract class Jungle
{
}
//工厂类
abstract class FacilitiesFactory
{
public abstract Road CreateRoad();
public abstract Building CreateBuilding();
public abstract Tunnel CreateTunnel();
public abstract Jungle CreateJungle();
}
//客户类
class GameManager
{
Road road;
Building building;
Tunnel tunnel;
Jungle jungle;
FacilitiesFactory facilitiesFactory;
public GameManager(FacilitiesFactory facilitiesFactory )
{
this.facilitiesFactory=facilitiesFactory;
}
public BuildGameFactory()
{
road = facilitiesFactory.CreateRoad();
building = facilitiesFactory.CreateBuildingd();
tunnel = facilitiesFactory.CreateTunnel();
jungle = facilitiesFactory.CreateJungle();
}
public void Run()
{
road.AAA();
building.BBB(road);
tunnel.CCC();
jungle.DDD(tunnel);
}
}
//应用
class App
{
public static void Main()
{
GameManager g = new GameManager(new ModernFacilitiesFactory);
g.BuildGameFactory();
g.Run();
}
}
//现代风格
//道路
public class ModernRoad:Road
{
}
//建筑
public class ModernBuilding:Building
{
}
//地道
public class ModernTunnel:Tunnel
{
}
//丛林
public class ModernJungle:Jungle
{
}
//工厂类
public class ModernFacilitiesFactory:FacilitiesFactory
{
public override Road CreateRoad()
{
return new ModernRoad();
}
public override Building CreateBuilding()
{
return new ModernBuilding();
}
public override Tunnel CreateTunnel()
{
return new ModernTunnel();
}
public override Jungle CreateJungle()
{
return new ModernJungle();
}
}



浙公网安备 33010602011771号