C#简单工厂模式(学习Learning hard讲解笔记)
原味地址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; } }
工厂生产西红柿和鸡蛋,用户吃的时候可以选择鸡蛋或者是西红柿,但是,如果用户想吃西瓜,工厂就需要增加生产了,这是简单工厂模式的限制。个人觉得,工厂模式比较适用于工厂类创建的对象比较少时用。