zoukankan      html  css  js  c++  java
  • 工厂类---一般工厂(2)

    一个工厂生产一种产品

    //抽象水果类Fruit

    //抽象的工厂类FruitFactory

    //具体的工厂类 BananaFactory PearFactory

    //具体的水果  //Banana Pear

     

    class Fruit
    {
    public:
        virtual void sayName()
        {
            std::cout<<"Fruit"<<std::endl;
        }
    };
    
    class FruitFactory
    {
        virtual Fruit *getFruit()
        {
            std::cout<<"FruitFactory:getFruit"<<std::endl;
            return NULL;
        }
    };
    
    
    class Pear : public Fruit
    {
    public:
        virtual void sayName()
        {
            std::cout<<"我是梨子"<<std::endl;
        }
    };
    
    class Banana : public Fruit
    {
    public:
        virtual void sayName()
        {
            std::cout<<"我是香蕉"<<std::endl;
        }
    };
    
    //dependency
    class BananaFactory : FruitFactory
    {
    public:
        virtual Fruit *getFruit()
        {
            return new Banana();
        }
    };
    //dependency
    class PearFactory : FruitFactory
    {
    public:
        virtual Fruit *getFruit()
        {
            return new Pear();
        }
    };

    工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。
    戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。
    生产哪种鼠标不再由参数决定,而是创建鼠标工厂时,由戴尔鼠标工厂创建
    后续直接调用鼠标工厂.生产鼠标()即可

  • 相关阅读:
    Java List集合
    Java 集合删除重复元素、删除指定元素
    进程和线程
    Java 线程的同步与死锁
    Java 线程的常用操作方法
    Java 多线程实现
    统计分析
    递归方法(回文)
    素数的输出
    动手动脑二
  • 原文地址:https://www.cnblogs.com/mathyk/p/9756819.html
Copyright © 2011-2022 走看看