标签:abs src line void rri com div create ges
抽象工厂,通过名字就知道它是一个抽象的类,并且用这个类来充当一个容器.用来返回抽象对象.
比如,我开了一个店,用来卖小吃的.我卖鸭脚和鸭脖
abstract class YaBo//鸭脖
{
public abstract void Create();
}
abstract class YaJiao//鸭脚
{
public abstract void Create();
}
因为现在只是我一个在卖,所以比较简单,所以我创建了一个工厂,用来创建我们需要的对象
abstract class Factory//抽象工厂
{
public abstract YaBo CreateYaBo();
public abstract YaJiao CreateYaJiao();
}
但现在是我们还没有自己的鸭脖,鸭脚的实现
class CongQingYaBo : YaBo
{
public override void Create()
{
Console.WriteLine("重庆的鸭脖子有点辣.0.");
}
}
class CongQingYaJiao:YaJiao
{
public override void Create()
{
Console.WriteLine("重庆鸭脚也很辣.......");
}
}
现在就差一步了,那就是实现我们自己的工厂
class CongQingYaBoFactory:Factory
{
public override YaBo CreateYaBo()
{
return new CongQingYaBo();
}
public override YaJiao CreateYaJiao()
{
return new CongQingYaJiao();
}
}
这样一个工厂方法就写好了,我们来看一下怎么使用
Factory f = new CongQingYaBoFactory();
f.CreateYaBo().Create();
假如现在我们的店越做越大,开了广东的分店,那么我们就需要实现广东鸭脖鸭脚的实现
class GuanDongYaBo : YaBo
{
public override void Create()
{
Console.WriteLine("广东鸭脖好甜..........");
}
}
class GuanDongYaJiao : YaJiao
{
public override void Create()
{
Console.WriteLine("广东鸭脚好甜..........");
}
}
class GuanDongYaJiaoFactory : Factory
{
public override YaBo CreateYaBo()
{
return new GuanDongYaBo();
}
public override YaJiao CreateYaJiao()
{
return new GuanDongYaJiao();
}
}
标签:abs src line void rri com div create ges
原文地址:http://www.cnblogs.com/student-note/p/6529661.html