今天开始工厂三兄弟的工厂模式,工厂模式与简单工厂相似,区别就在于工厂类被进一步细化,简单工厂的工厂类中由一个方法根据具体需求创建具体的产品。而工厂模式中,每一个产品对应一个工厂。也就是一个工厂不再像简单工厂那样,一个工厂可以生产不同的商品。在工厂模式中,每一个商品都对应一个生产该商品的工厂。代码如下:
/// <summary>
/// 食品类
/// </summary>
public abstract class Food
{
/// <summary>
/// 用于显示食品类型
/// </summary>
public abstract void Show();
}
/// <summary>
/// 巧克力类
/// </summary>
public class QiaoKeLi : Food
{
public override void Show()
{
Console.Write("巧克力");
}
}
/// <summary>
/// 面包类
/// </summary>
public class Bread : Food
{
public override void Show()
{
Console.Write("面包");
}
}
public abstract class Factory //工厂基类
{
public abstract Food GetFood();
}
public class QiaoKeLiFactory: Factory //巧克力工厂
{
public override Food GetFood()
{
return new QiaoKeLi();
}
}
public class BreadFactory : Factory //面包工厂
{
public override Food GetFood()
{
return new Bread();
}
}
客户端调用
static void Main(string[] args)
{
Factory myfactory = new QiaoKeLiFactory();
Food food = myfactory.GetFood();
food.Show();
}