C#浅谈设计模式之工厂模式

  • 设计模式的几篇文章本来是准备连续发得。但是无奈中间插了个新的需求就临时先记录了一下遇到的上篇文章中的问题。
  • 今天开始写工厂设计模式
  • 说到工厂设计模式,字面上先理解一波。“工厂”——生活中就是建造一些产品地方。比如我就先前就职于全国五百强工厂–“富士康”,并出任流水线产品监督审核要职。还有就是现今如日中天的“特斯拉”超级工厂。当然也还有一些小一点“江南皮革厂”经常带小姨子跑路,跑不跑路我们先不论,我们主要讨论的是为什么每次都要带上小姨子。。。
  • 言归正传——简单工厂(江南皮革厂)
  • 说明:抽象就是实现工厂模式的主要手段,所以这里我们要使用简单工厂首先我们先将工厂所生成的产品抽象出来。
  • 这里我们先用 引入生产汽车这个例子。 汽车就是我们要抽象出来的东西。
  • 抽象汽车接口,然后里面有三个汽车的基本方法,开、关、驾驶车辆。
namespace SimpleFactory
{
    public interface ICar
    {
        void OpenCar();

        void CloseCar();

        void OperaCar();     
    }
}
  • 然后呢我们要建造工厂来生产车辆,这里为了更好的理解,我就先建造两个生产汽车的工厂。工厂类实现了抽象的接口
  • 五菱汽车工厂
namespace SimpleFactory
{
    public class WlCar : ICar
    {
        public void CloseCar()
        {
            Console.WriteLine("锁上我的五菱之光");
        }

        public void OpenCar()
        {
            Console.WriteLine("打开我的五菱爱车");
        }

        public void OperaCar()
        {
            Console.WriteLine("五菱开上了高速,这不是去幼儿园的车");
        }
    }
}
  • 比亚迪工厂
namespace SimpleFactory
{
    public class BydCar : ICar
    {
        public void CloseCar()
        {
            Console.WriteLine("锁上我的比亚迪-唐");
        }

        public void OpenCar()
        {
            Console.WriteLine("打开我的比亚迪-唐");
        }

        public void OperaCar()
        {
            Console.WriteLine("驾驶比亚迪-唐到最近的洗脚店");
        }
    }
}

  • 然后再来一个汽车售卖商城
namespace SimpleFactory
{
    public class CarFactory
    {
        public static ICar GetCar(string carname)
        {
            if (carname.Equals("wuling"))
            {
                return new WlCar();
            }
            else if (carname.Equals("byd"))
            {
                return new BydCar();
            }
            return null;
        }
    }
}
  • 为了更好的理解我们再来画图理解一波。就是你需要一辆汽车,驾驶这辆车可以开上高速可以开去洗脚店。并且呢你还有自己想要开的车型。所以当你想要买一辆车的时候,你只要去汽车商城大声喊出你要驾驶的汽车名称,刷卡付钱之后你就可以拥有一辆自己想要的车车。上图。
  • 在这里插入图片描述
  • 简单工厂就是这样。通过一个工厂实现你要东西。
  • 最后—
  • 在这里插入图片描述
    加油,西红柿!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值