abstractFactory
using System;
using System.Collections.Generic;
using System.Text;
namespace abstractFactory
{
//道路
public class MordenRoad:Road
{
}
//房屋
public class MordenBuilding:Building
{
}
//地道
public class MordenTunnel:Tunnel
{
}
//丛林
public class MordenJungle:Jungle
{
}
public class MordenFacilityFactory:FacilityFactory
{
public override Road CreatRoad()
{
return new MordenRoad();
}
public override Building CreatBuilding()
{
return new MordenBuilding();
}
public override Tunnel CreatTunnel()
{
return new MordenTunnel();
}
public override Jungle CreatJungle()
{
return new MordenJungle();
}
}
//客户程序代码
class GameManager
{
Road road;
Building buliding;
Tunnel tunnel;
Jungle jungle;
public GameManager(FacilityFactory facilityFactory)
{
this.facilityFactory = facilityFactory;
}
public void BuildGameFacility()
{
road = FacilityFactory.CreatRoad();
buliding = FacilityFactory.CreatBuilding();
tunnel = FacilityFactory.CreatTunnel();
jungle = FacilityFactory.CreatJungle();
}
}
public void Run()
{
road.AAA();
building.BBB();
tunnel.CCC();
jungle.DDD(tunnel);
}
class App
{
public static void Main()
{
GameManager g = new GameManager(MordenFacilityFactory);
g.BuildGameFacility();
g.Run;
}
}
}
浙公网安备 33010602011771号