C#设计模式(2)简单工厂模式
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。
public class Customer
{
public static Food Cook(string type)
{
Food food = null;
// 客户A说:我想吃西红柿炒蛋怎么办?
// 客户B说:那你就自己烧啊
// 客户A说: 好吧,那就自己做吧
if (type.Equals("西红柿炒蛋"))
{
food = new TomatoScrambledEggs();
}
// 我又想吃土豆肉丝, 这个还是得自己做
// 我觉得自己做好累哦,如果能有人帮我做就好了?
else if (type.Equals("土豆肉丝"))
{
food = new ShreddedPorkWithPotatoes();
}
return food;
}
static void Main(string[] args)
{
// 做西红柿炒蛋
Food food1 = Cook("西红柿炒蛋");
food1.Print();
Food food2 = Cook("土豆肉丝");
food2.Print();
Console.Read();
}
}
public abstract class Food
{
// 输出点了什么菜
public abstract void Print();
}
public class TomatoScrambledEggs : Food
{
public override void Print()
{
Console.WriteLine("一份西红柿炒蛋!");
}
}
public class ShreddedPorkWithPotatoes : Food
{
public override void Print()
{
Console.WriteLine("一份土豆肉丝");
}
}