c# 工厂方法模式(学习记录)

本文通过一个生动的餐厅示例解释了工厂方法模式的概念。在这个例子中,客人点菜时,不同类型的餐厅(如西红柿炒鸡蛋餐厅、青椒回锅肉餐厅或茄子煲餐厅)会委托子餐厅来制作相应的菜品。每个餐厅类作为工厂,负责创建对应的菜品对象。这种模式在软件设计中允许延迟对象实例化,增加了代码的灵活性和可扩展性。
摘要由CSDN通过智能技术生成

工厂方法模式类似说段子中的我开了个餐厅,但是我的菜都是别的餐厅炒出来的,并不是我自己炒出来的,所以当我要吃西红柿炒鸡蛋的时候,这个餐厅就会找子餐厅去叫他炒

示例:

public class Food    //菜品标准接口
{
    public virtual double GetResult()
    {
        return "我不生产菜,我只是菜的搬运工";
    }
}

class 西红柿炒鸡蛋 : Food    
{
    public virtual double GetResult()
    {
        return "给搬运工送西红柿炒鸡蛋";
    }
}

class 青椒回锅肉 : Food    
{
    public virtual double GetResult()
    {
        return "给搬运工送青椒回锅肉";
    }
}

class 茄子煲 : Food    
{
    public virtual double GetResult()
    {
        return "给搬运工送茄子煲";
    }
}


public abstract class Factory   
{
    public abstract Operation CreateFood();
}

public class 西红柿炒鸡蛋餐厅 : Factory
{
    public override Operation CreateFood()
    {
        return new 西红柿炒鸡蛋();
    }
}

public class 青椒回锅肉餐厅 : Factory
{
    public override Operation CreateFood()
    {
        return new 青椒回锅肉();
    }
}

public class 茄子煲餐厅 : Factory
{
    public override Operation CreateFood()
    {
        return new 茄子煲();
    }
}


public class 客人{
    static void Main(string[] args)
    {
        Factory fac = null;
        switch ("西红柿炒鸡蛋")  
        {
            case "西红柿炒鸡蛋":
                fac = new 西红柿炒鸡蛋餐厅();  //返回产品
            break;
            
            case "青椒回锅肉":
                fac = new 青椒回锅肉餐厅();  //返回产品
            break;

            case "茄子煲":
                fac = new 茄子煲餐厅();  //返回产品
            break;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值