小马的天空
我为软狂

导航

 
抽象工厂结构图
 
试例代码
//道路
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();
  }

}
posted on 2006-07-01 22:30  Vinson  阅读(213)  评论(0)    收藏  举报