📄 program.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
namespace _3
{
class Program
{
static void Main(string[] args)
{
// 创建并运行非洲动物世界。
ContinentFactory africa = new AfricaFactory();
AnimalWorld world = new AnimalWorld(africa);
world.RunFoodChain();
// 创建并运行美洲动物世界。
ContinentFactory america = new AmericaFactory();
world = new AnimalWorld(america);
world.RunFoodChain();
}
}
abstract class ContinentFactory //抽象工厂(大陆)
{
abstract public Herbivore CreateHerbivore();//创建草食动物
abstract public Carnivore CreateCarnivore();//创建肉食动物
}
class AfricaFactory : ContinentFactory //具体工厂(非洲)
{
override public Herbivore CreateHerbivore()
{ return new Wildebeest(); }
override public Carnivore CreateCarnivore()
{ return new Lion(); }
}
class AmericaFactory : ContinentFactory //具体工厂(美洲)
{
override public Herbivore CreateHerbivore()
{ return new Bison(); }
override public Carnivore CreateCarnivore()
{ return new Wolf(); }
}
abstract class Herbivore //抽象产品(草食动物)
{
}
abstract class Carnivore //抽象产品(食肉动物)
{
abstract public void Eat(Herbivore h);
}
class Wildebeest : Herbivore //产品(羚羊)
{
}
class Lion : Carnivore //产品(狮子)
{
override public void Eat(Herbivore h)
{
// 吃肉食
Console.WriteLine("狮子吃 " + h);
}
}
class Bison : Herbivore //产品(野牛)
{
}
class Wolf : Carnivore //产品(狼)
{
// Methods
override public void Eat(Herbivore h)
{
// 吃肉食
Console.WriteLine( " 狼吃 " + h);
}
}
class AnimalWorld //程序客户端
{
private Herbivore herbivore;
private Carnivore carnivore;
public AnimalWorld(ContinentFactory factory)
{
carnivore = factory.CreateCarnivore();
herbivore = factory.CreateHerbivore();
}
public void RunFoodChain()
{
carnivore.Eat(herbivore);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -