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;
        }
    }

  工厂生产西红柿和鸡蛋,用户吃的时候可以选择鸡蛋或者是西红柿,但是,如果用户想吃西瓜,工厂就需要增加生产了,这是简单工厂模式的限制。个人觉得,工厂模式比较适用于工厂类创建的对象比较少时用。

原文地址:https://www.cnblogs.com/zyfadmin/p/8410796.html