[转载] C#面向对象设计模式纵横谈——3. AbstractFactory抽象工厂模式
2011-05-27 09:02
495 查看
主讲:李建忠
来源: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);
}
}[/code]
来源: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);
}
}[/code]
相关文章推荐
- C#面向对象设计模式纵横谈3 AbstractFactory抽象工厂模式创建型模式
- [转载] C#面向对象设计模式纵横谈——5. Factory Method工厂方法模式
- C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式)
- [转载] C#面向对象设计模式纵横谈——2. Singleton单件模式
- [转载] C#面向对象设计模式纵横谈——4. Builder生成器模式
- [转载] C#面向对象设计模式纵横谈——8. Bridge桥接模式
- [转载] C#面向对象设计模式纵横谈——13. Proxy代理模式
- [转载] C#面向对象设计模式纵横谈——6. Prototype原型模式
- [转载] C#面向对象设计模式纵横谈——9. Composite组合模式
- [转载] C#面向对象设计模式纵横谈——12. Flyweight享元模式
- [转载] C#面向对象设计模式纵横谈——10. Decorator装饰模式
- [转载] C#面向对象设计模式纵横谈——14 Template Method模板方法
- [转载] C#面向对象设计模式纵横谈——7. Adapter适配器模式
- [转载] C#面向对象设计模式纵横谈——11. Facede外观模式
- C#面向对象设计模式纵横谈 学习笔记2 Singleton单例模式
- 设计模式 (三)抽象工厂模式(AbstractFactory)
- C#面向对象设计模式纵横谈 学习笔记6 Prototype 原型(创建型模式)
- C++设计模式-AbstractFactory抽象工厂模式
- C#面向对象设计模式纵横谈(1):面向对象设计模式与原则
- C#面向对象设计模式纵横谈 学习笔记18 Iterator迭代器模式(行为型模式)