zoukankan      html  css  js  c++  java
  • 工厂方法模式(C++)

    #define win 0
    #define mac 1
    #include <iostream>
    using namespace std;
    
    class button
    {
    public:
        button(){}
        virtual ~button(){}
        virtual void showbutton()=0;
    };
    
    class winbutton : public button
    {
    public:
        winbutton(){}
        virtual ~winbutton(){}
        void showbutton(){cout<<"win button"<<endl;}
    };
    
    class macbutton : public button
    {
    public:
        macbutton(){}
        virtual ~macbutton(){}
        void showbutton(){cout<<"mac button"<<endl;}
    };
    
    class factory
    {
    public:
        factory(){}
        virtual ~factory(){}
        virtual button *createbutton()=0;
    };
    
    class winfactory : public factory
    {
    public:
        winfactory(){}
        virtual ~winfactory(){}
        button *createbutton(){return new winbutton;}
    };
    
    class macfactory : public factory
    {
    public:
        macfactory(){}
        virtual ~macfactory(){}
        button *createbutton(){return new macbutton;}
    };
    
    int main()
    {
        factory *fc=new winfactory;
        button *bt=fc->createbutton();
        bt->showbutton();
        delete bt;
        delete fc;
    
        fc=new macfactory;
        bt=fc->createbutton();
        bt->showbutton();
        delete bt;
        delete fc;
    
        system("pause");
        return 0;
    }
  • 相关阅读:
    [CQOI2006]凸多边形
    NOIP后省选集训前文化课划水记
    FFT字符串匹配
    ghj1222的代码规范
    博弈论
    P1350 车的放置
    P2110 欢总喊楼记
    虫食算
    3192: [JLOI2013]删除物品
    逛公园
  • 原文地址:https://www.cnblogs.com/tiandsp/p/2560124.html
Copyright © 2011-2022 走看看