創建型模式之抽象工廠(轉)
来源:互联网 发布:sql语音中删除表命令 编辑:程序博客网 时间:2024/05/21 07:33
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace Walter.K.Wang.Abstract
...{
public abstract class ContinentFactory
...{
public abstract Herbivore CreateHerbivore();
public abstract Carnivore CreateCarnivore();
}
public class AfricaFactory : ContinentFactory
...{
public override Herbivore CreateHerbivore()
...{
return new Wildebeest();
}
public override Carnivore CreateCarnivore()
...{
return new Lion();
}
}
public class AmericaFactory : ContinentFactory
...{
public override Herbivore CreateHerbivore()
...{
return new Bison();
}
public override Carnivore CreateCarnivore()
...{
return new Wolf();
}
}
public abstract class Herbivore
...{
}
public abstract class Carnivore
...{
public abstract void Eat(Herbivore h);
}
class Wildebeest : Herbivore
...{
}
class Lion : Carnivore
...{
public override void Eat(Herbivore h)
...{
MessageBox.Show(this.GetType().Name + " eats " + h.GetType().Name, "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
class Bison : Herbivore
...{
}
class Wolf : Carnivore
...{
public override void Eat(Herbivore h)
...{
MessageBox.Show(this.GetType().Name + " eats " + h.GetType().Name, "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
public class AnimalWorld
...{
private Herbivore herbivore;
private Carnivore carnivore;
public AnimalWorld(ContinentFactory factory)
...{
carnivore = factory.CreateCarnivore();
herbivore = factory.CreateHerbivore();
}
public void RunFoodChain()
...{
carnivore.Eat(herbivore);
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace Walter.K.Wang.Abstract
...{
public abstract class ContinentFactory
...{
public abstract Herbivore CreateHerbivore();
public abstract Carnivore CreateCarnivore();
}
public class AfricaFactory : ContinentFactory
...{
public override Herbivore CreateHerbivore()
...{
return new Wildebeest();
}
public override Carnivore CreateCarnivore()
...{
return new Lion();
}
}
public class AmericaFactory : ContinentFactory
...{
public override Herbivore CreateHerbivore()
...{
return new Bison();
}
public override Carnivore CreateCarnivore()
...{
return new Wolf();
}
}
public abstract class Herbivore
...{
}
public abstract class Carnivore
...{
public abstract void Eat(Herbivore h);
}
class Wildebeest : Herbivore
...{
}
class Lion : Carnivore
...{
public override void Eat(Herbivore h)
...{
MessageBox.Show(this.GetType().Name + " eats " + h.GetType().Name, "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
class Bison : Herbivore
...{
}
class Wolf : Carnivore
...{
public override void Eat(Herbivore h)
...{
MessageBox.Show(this.GetType().Name + " eats " + h.GetType().Name, "友情提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
public class AnimalWorld
...{
private Herbivore herbivore;
private Carnivore carnivore;
public AnimalWorld(ContinentFactory factory)
...{
carnivore = factory.CreateCarnivore();
herbivore = factory.CreateHerbivore();
}
public void RunFoodChain()
...{
carnivore.Eat(herbivore);
}
}
}
private void 抽象工廠ToolStripMenuItem_Click(object sender, EventArgs e)
...{
ContinentFactory africa = new AfricaFactory();
AnimalWorld world = new AnimalWorld(africa);
world.RunFoodChain();
ContinentFactory america = new AmericaFactory();
world = new AnimalWorld(america);
world.RunFoodChain();
}
...{
ContinentFactory africa = new AfricaFactory();
AnimalWorld world = new AnimalWorld(africa);
world.RunFoodChain();
ContinentFactory america = new AmericaFactory();
world = new AnimalWorld(america);
world.RunFoodChain();
}
- 創建型模式之抽象工廠(轉)
- 抽象工厂模式-Abstract Factory Pattern 工厂三兄弟之抽象工厂模式(三):抽象工厂模式概述
- .Net设计模式之抽象工厂模式(Abstract Factory)
- Java模式设计读书笔记 之 抽象工厂模式(上)
- 设计模式(二)之Abstract Factory - 抽象工厂模式
- .Net设计模式之抽象工厂模式(转载)
- 设计模式之Factory(工厂模式,抽象工厂)
- Java设计模式之抽象工厂(Abstract Factory)模式
- JAVA设计模式之抽象工厂(Abstract Factory)模式
- 设计模式之--抽象工厂模式(学习分析笔记)
- 设计模式C++之七(AbstractFactory抽象工厂模式)
- 设计模式之03抽象工厂模式(笔记)
- .NET设计模式之抽象工厂模式(Abstract Factory)
- 代码设计模式之抽象工厂模式(Abstract Factory)
- 设计模式之二 抽象工厂模式(Abstract Factory)
- Java设计模式之三(抽象工厂模式)
- 24种设计模式之工厂模式--(抽象工厂)
- java设计模式(创建型)之抽象工厂模式
- 程序测试规范
- 香烟爱上火柴就注定被伤害…
- 随笔
- 获得DW中所有对象
- 創建型模式之單件模式(轉)
- 創建型模式之抽象工廠(轉)
- 創建型模式之創建者模式
- 創建型模式之工廠方法模式
- 創建型模式之原型模式
- 事务基础2--事务属性之隔离层级(Isolation level)
- VC多线程解决有些项目中的数据存取问题
- assert 和 if 的区别
- 送给职场人的七日忠告
- 我不要没有下半身的美女