创建型模式中工厂模式有三兄弟,先从简单工厂讲起。工厂模式中包含了产品与工厂两个对象,其中产品是是一个个具体的对象,而工厂负责生产这些产品。例如现在我们的需求是有两个食品要在食品厂加工。两个食品分别叫做面包和巧克力,要在食品厂加工。通过需求分析出应该有如下几个类,面包类、巧克力类、食品加工厂类。由于面包和巧克力是属于食品,那么必然会生出一个食品类。加工厂我们暂时就不再去做区分。。。OK,简单分析上代码。
/// <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("面包");
}
}
/// <summary>
/// 食品加工厂
/// </summary>
public class FoodFactroy
{
public Food Make(int foodindex)//实例化本就是创建的意思。
{
switch (foodindex)
{
case 0:
return new QiaoKeLi();
case 1:
return new Bread();
default:
return null;
}
}
}
客户端调用
FoodFactroy factroy = new FoodFactroy();
Food food= factroy.Make(0);//此处通过传入参数,达到依赖倒转法则。想吃面包传入1即可
food.Show();