码迷,mamicode.com
首页 > 其他好文 > 详细

简单工厂模式

时间:2019-03-24 21:52:19      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:new   rac   write   管理   oid   rod   over   自己   tor   

简单工厂模式

    实例:我要制作一个汽车,首先从一个螺丝和螺帽开始,如果让我来实现,我会这样写

  1\首先定义一个螺丝类一个螺帽类

  2\然后在客户端调用,创建螺帽

  我会这样去实现

  

 class Program
    {
        static void Main(string[] args)
        {
            Crew crew = new Crew();
            crew.CreateCrew();
            Console.ReadKey();
        }
    }
    public class Crew
    {
        public void CreateCrew()
        {
            Console.WriteLine("创造了一个螺丝");
        }
    }
    public class Nut
    {
        public void CreateNut ()
        {
            Console.WriteLine("创建了一个螺帽");
        }
    }

现在吗,功能虽然实现了,但是我还要创建别的东西,创建每个东西的时候,都要添加对应的类,我感到疲惫,不如把这个交给工厂来做吧,让我们找个小作坊吧

  好了,现在找到一个小作坊,我想要的是,我告诉你我要什么,你给我什么就行,这种效果我就很满意了

  小作坊是这样实现的.

  1\我告诉老板,我想要个螺丝

  2\老板刚好能做,说,好,生产给你

实现:

 //定义一个抽象的产品类
    public abstract class Product
    {
        public abstract void CreateProduct();
    }

    //具体的产品类,螺丝
    public class Screw : Product
    {
        public override void CreateProduct()
        {
            Console.WriteLine("生产了一个螺丝");
        }
    }
    public class Nut : Product
    {
        public override void CreateProduct()
        {
            Console.WriteLine("生产了一个螺帽");
        }
    }
    //小作坊
    public class Factory
    {
        public Product CreateProduct(int type)
        {
            if (type==1)
            {
                Screw screw = new Screw();
                return screw;
            }
            else if (type==2)
            {
                Nut nut = new Nut();
                return nut;
            }
            else
            {
                return null;
            }
        }
    }

这样,我使用的时候,直接和老板说,我要螺丝就可以了

Factory factory = new Factory();
            Product screw = factory.CreateProduct(1);
            screw.CreateProduct();

现在,我想要螺帽的时候,和老板说一声就行了.

这样比我刚才自己写的代码更进了一步,至少我不用管理这么多的产品了,而且一部分代码也得到了复用,但是问题还有,我还想要轮胎,小作坊老板说他不能生产,要生产的化需要升级设备,这很麻烦啊,得想想办法

简单工厂模式

标签:new   rac   write   管理   oid   rod   over   自己   tor   

原文地址:https://www.cnblogs.com/qiushuizh/p/10590276.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!