class Client
{
static void Main(string[] args)
{
// 南昌工厂制作南昌的鸭脖和鸭架
AbstractFactory nanChangFactory = new NanChangFactory();
YaBo nanChangYabo = nanChangFactory.CreateYaBo();
nanChangYabo.Print();
YaJia nanChangYajia= nanChangFactory.CreateYaJia();
nanChangYajia.Print();
// 上海工厂制作上海的鸭脖和鸭架
AbstractFactory shangHaiFactory = new ShangHaiFactory();
shangHaiFactory.CreateYaBo().Print();
shangHaiFactory.CreateYaJia().Print();
Console.Read();
}
}
public abstract class AbstractFactory// 抽象工厂类
{
public abstract YaBo CreateYaBo();
public abstract YaJia CreateYaJia();
}
public class NanChangFactory : AbstractFactory// 南昌绝味工厂
{
public override YaBo CreateYaBo()// 制作南昌鸭脖
{
return new NanChangYaBo();
}
public override YaJia CreateYaJia()// 制作南昌鸭架
{
return new NanChangYaJia();
}
}
public class ShangHaiFactory : AbstractFactory// 上海绝味工厂
{
public override YaBo CreateYaBo()
{
return new ShangHaiYaBo();
}
public override YaJia CreateYaJia()
{
return new ShangHaiYaJia();
}
}
public abstract class YaBo
{
public abstract void Print();
}
public abstract class YaJia
{
public abstract void Print();
}
public class NanChangYaBo : YaBo
{
public override void Print()
{
Console.WriteLine("南昌的鸭脖");
}
}
public class ShangHaiYaBo : YaBo
{
public override void Print()
{
Console.WriteLine("上海的鸭脖");
}
}
public class NanChangYaJia : YaJia
{
public override void Print()
{
Console.WriteLine("南昌的鸭架子");
}
}
public class ShangHaiYaJia : YaJia
{
public override void Print()
{
Console.WriteLine("上海的鸭架子");
}
}