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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值