原味地址http://www.cnblogs.com/zhili/p/SimpleFactory.html
简单工厂模式通俗的理解就是用户与工厂的关系,用户用的东西,工厂来生成,责任明确。
就像大神展示的例子,小弟自己敲了一遍。
class Program
{
static void Main(string[] args)
{
//点菜
//点个西红柿
Food food = FoodFactory.GetFood("Tomato");
food.Print();
Thread.Sleep(5000);
Food food1 = FoodFactory.GetFood("egg");
food1.Print();
Console.Read();
}
}
/// <summary>
/// 抽象类
/// </summary>
public abstract class Food
{
public abstract void Print();
}
//西红柿
public class Tomato:Food
{
public override void Print()
{
Console.WriteLine("Tomato");
}
}
//鸡蛋
public class Egg : Food
{
public override void Print()
{
Console.WriteLine("egg");
}
}
//工厂类
public class FoodFactory
{
public static Food GetFood(string type)
{
Food food = null;
if (type == "Tomato")
{
food = new Tomato();
}
else if (type == "egg")
{
food = new Egg();
}
return food;
}
}
工厂生产西红柿和鸡蛋,用户吃的时候可以选择鸡蛋或者是西红柿,但是,如果用户想吃西瓜,工厂就需要增加生产了,这是简单工厂模式的限制。个人觉得,工厂模式比较适用于工厂类创建的对象比较少时用。