c# 简单工厂模式简单例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*简单工厂模式,工厂类返回一个子类对象*/
/*
 * 应用场景
 * 1,当工厂类负责创建的对象比较少时可以考虑使用简单工厂模式
 * 2,客户如果只知道传入工厂类的参数,对于如何创建对象的逻辑不关心时可以考虑使用简单工厂模式
*/
namespace 简单工厂模式
{
    //抽象一个娱乐场
    public abstract class Carnie
    {
        public abstract void GetTicket();
    }
    //具体到一个项目:海盗船
    public class PirateShip:Carnie
    {
        public override void GetTicket()
        {
            Console.WriteLine("获取到了海盗船项目的门票!");
        }
    }
    //具体到一个项目:碰碰车
    public class Dodgems:Carnie
    {
        public override void GetTicket()
        {
            Console.WriteLine("获取到了碰碰车项目的门票!");
        }
    }

    public class CarnieFactory
    {
        public static Carnie GetProject(string project)
        {
            Carnie carnie=null;
            if(project=="海盗船")
            {
                carnie = new PirateShip();
            }
            else if(project=="碰碰车")
            {
                carnie = new Dodgems();
            }
            return carnie;
        }
    }
    class Program
    {
        public static Carnie GetProject(string project)
        {
            Carnie carnie = null;
            if (project == "海盗船")
            {
                carnie = new PirateShip();
            }
            else if (project == "碰碰车")
            {
                carnie = new Dodgems();
            }
            return carnie;
        }
        static void Main(string[] args)
        {
            Console.WriteLine("********不用简单工厂模式********");
            Carnie carnie = GetProject("碰碰车");
            carnie.GetTicket();
            carnie = GetProject("海盗船");
            carnie.GetTicket();

            Console.WriteLine("*********简单工厂模式********");

            carnie = CarnieFactory.GetProject("碰碰车");
            carnie.GetTicket();
            carnie = CarnieFactory.GetProject("海盗船");
            carnie.GetTicket();

         
            Console.ReadKey();
        }
    }
}

    可能是因为经验的问题,个人对简单工厂模式的理解不够,没有发觉它的特别优势是什么,总结下,就是一个单位下有很多的职能部门,而工厂就是这些部门的管理者,当客户需要什么服务时,只需要告诉管理者需求,然后管理者根据需求找到对应的部门取出你需要的东西,而不需要你自己去找。

    边学习边总结,加深理解!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值