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 text
    {
    public:
        text(){}
        virtual ~text(){}
        virtual void showtext()=0;
    };
    
    class wintext : public text
    {
    public:
        wintext(){}
        virtual ~wintext(){}
        void showtext(){cout<<"win text"<<endl;}
    };
    
    class mactext : public text
    {
    public:
        mactext(){}
        virtual ~mactext(){}
        void showtext(){cout<<"mac text"<<endl;}
    };
    
    class abstractfactory
    {
    public:
        abstractfactory(){}
        virtual ~abstractfactory(){}
        virtual button *createbutton()=0;
        virtual text *createtext()=0;
    };
    
    class winfactory : public abstractfactory
    {
    public:
        winfactory(){}
        virtual ~winfactory(){}
        button *createbutton(){return new winbutton;}
        text *createtext(){return new wintext;}
    };
    
    class macfactory : public abstractfactory
    {
    public:
        macfactory(){}
        virtual ~macfactory(){}
        button *createbutton(){return new macbutton;}
        text *createtext(){return new mactext;}
    };
    
    int main()
    {
        abstractfactory *fc=new winfactory;
        button *bt=fc->createbutton();
        text *tx=fc->createtext();
        bt->showbutton();
        tx->showtext();
        delete bt;
        delete tx;
        delete fc;
    
        fc=new macfactory;
        bt=fc->createbutton();
        tx=fc->createtext();
        bt->showbutton();
        tx->showtext();
        delete bt;
        delete tx;
        delete fc;
    
        system("pause");
        return 0;
    }
  • 相关阅读:
    机器学习为什么强大?
    将博客搬至CSDN
    nth_element()函数解决 第k小数
    DVWA XSS部分
    XSS挑战之旅(通过看代码解题)
    汇编语言(第三版)王爽 检测点3.2
    汇编语言(第三版)王爽 检测点3.1
    汇编语言(第三版)王爽 检测点2.3
    汇编语言(第三版)王爽 检测点2.2
    汇编语言(第三版)王爽 检测点2.1
  • 原文地址:https://www.cnblogs.com/tiandsp/p/2560139.html
Copyright © 2011-2022 走看看