游戏开发中的多风格系列场景,比如道路,房屋,管道等
//道路
public abstract class Road
{
}
//房屋
public abstract class Building
{
}
//地道
public abstract class Tunnel
{
}
//丛林
public abstract class Jungle
{
}
public abstract class FacilitiesFactory
{
public abstract Road CreateRoad();
public abstract Building CreateBuilding();
public abstract Tunnel CreateTunnel();
public abstract Jungle CreateJungle();
}
//现代风格道路
public class ModernRoad : Road
{
}
//现代风格房屋
public class ModernBuilding : Building
{
}
//现代风格地道
public class ModernTunnel : Tunnel
{
}
//现代风格丛林
public class ModernJungle : Jungle
{
}
//现代风格场景
public abstract 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();
}
}
==============================================================================================================
//客户程序
class GameManager
{
FacilitiesFactory facilitiesFactory;
Road road;
Building building;
Tunnel tunnel;
Jungle jungle;
public GameManager(FacilitiesFactory facilitiesfactory)
{
this.facilitiesFactory = facilitiesfactory;
}
public void BuildGameFacilities()
{
road = facilitiesFactory.CreateRoad();
building = facilitiesFactory.CreateBuilding();
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.BuildGameFacilities();
g.Run();
}
}