主讲:李建忠
来源:http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/consyscourse/CsharpOOD.aspx
AbstractFactory代码示例//道路 public abstract class Road { public abstract void AAA(); } //房屋 public abstract class Building { public abstract void BBB(Road road); } //地道 public abstract class Tunnel { public abstract void CCC(); } //丛林 public abstract class Jungle { public abstract void DDD(Tunnel tunnel); } abstract class FacilitiesFactory { public abstract Road CreateRoad(); public abstract Building CreateBuilding(); public abstract Tunnel CreateTunnel(); public abstract Jungle CreateJungle(); } //Client客户程序 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 Play() { road.AAA(); building.BBB(road); tunnel.CCC(); jungle.DDD(tunnel); } }