c# 简单工厂模式的介绍

常用的案列介绍就是厨房做包子和馒头,这里的厨房就是我们工厂 ,我们每次只需要对厨房的窗口说给我一个馒头窗口就会给我们一个馒头,叫他们给我们一个包子就给我们一个包子。

第一:首先我们要定一个一个抽象工厂,然后工厂有一个方法输出方法

public abstract class Food
    {
        // 搞点面食,馒头,包子
        public abstract void GetNoodle();
   }

第二步就是实现工厂的生成方法,我是生成包子的还是生成馒头的

/// <summary>
    /// 包子
    /// </summary>
    public class baozi : Food
    {
        public override void GetNoodle()
        {
            Console.WriteLine("包子一个!");
        }
    }

    /// <summary>
    /// 馒头
    /// </summary>
    public class mantou: Food
    {
        public override void GetNoodle()
        {
            Console.WriteLine("馒头一个");
        }
    }

第三不,实现消费我是顾客我要一个包子或者馒头

public class FoodSimpleFactory
    {
         //这里就充当了厨房窗口 我要包子还是馒头。//说实话个人很少用到这种工厂模式
        public static Food CreateFood(string type)
        {
            Food food = null;
            if (type.Equals("包子"))
            {
                food= new baozi();
            }
            else if (type.Equals("馒头"))
            {
                food= new mantou();
            }

            return food;
        }
    }

最后消费

class Customer
    {
        static void Main(string[] args)
        {
            // 客户想点包子     
            Food food1 = FoodSimpleFactory.CreateFood("包子");
            food1.GetNoodle();

            // 客户想点馒头
            Food food2 = FoodSimpleFactory.CreateFood("馒头");
            food2.GetNoodle();

            Console.Read();
        }
    }

.NET中System.Text.Encoding类就实现了简单工厂模式,该类中的GetEncoding(int codepage)就是工厂方法

转载于:https://my.oschina.net/stuyun/blog/2254505

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值