Factory Method | 工厂方法

(1)可以使用工厂基类创建产品。

(2)可以使用工厂基类来调用子类实例化的方法,实现了多态。

cpp 复制代码
#include<iostream>
#include<thread>
#include<string>
using namespace std;
//===========abstract product 抽象产品 =====
class Door{
public:
    Door(){cout<<"door:构造函数被调用"<<endl;}
    virtual ~Door()=default;
    virtual void show()=0;
};
//=======concrete product 具体产品=========
class StoneDoor:public Door{
public:
    StoneDoor(){cout<<"StoneDoor:构造函数被调用"<<endl;}
    virtual ~StoneDoor()=default;
    void show() override {cout<<"StoneDoor:show函数被调用"<<endl;}
};
//========factory 工厂基类===========
class Factory{
public:
    Factory(){cout<<"Factroy:构造函数被调用"<<endl;}
    virtual ~Factory()=default;
    virtual Door* creat()=0;
    virtual void DoSomething()=0;
};
//==========concrete Factory 具体产品===========
class StoneFactory:public Factory{
public:
    StoneFactory(){cout<<"StoneFactroy:构造函数被调用"<<endl;}
    virtual ~StoneFactory(){cout<<"StoneFfactory:析构函数被调用"<<endl;}
    Door* creat() override{
        return new StoneDoor;
    }
    void DoSomething() override{cout << "StoneFactory:dosomethng函数被调用"<<endl;}

};
//========client 连接函数=================
int main(int argv,char* argc[]){
    Factory* factory= new StoneFactory;
    Door* door = factory->creat();
    factory->DoSomething();
    delete factory;
    delete door;
    return 0;
}
相关推荐
OpenAnolis小助手8 分钟前
一句话看透 JVM,SysOM 诊断 Skill 新增 Java 应用诊断能力
java·开发语言·jvm·阿里云·操作系统控制台·sysom
小玮看世界10 分钟前
[Python]OD算法在OD实际运用转化参考清单
开发语言·python·算法
ForteScarlet28 分钟前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
萧瑟余晖31 分钟前
Java深入解析篇六十二之安全机制详解
java·开发语言
老赵的博客1 小时前
c++ QT之动态库加载问题
c++·qt
菜鸟~noob2331 小时前
【电子战】 第01篇:噪声、门限与虚警/检测概率(PFA/PD)【含matlab代码】
开发语言·matlab
奇牙coding1231 小时前
GPT-6-Astra API 接入教程:OpenRouter 路由配置 + Python/curl 示例 + 静默降级踩坑
开发语言·python·gpt·ai
(Charon)2 小时前
【C++】定时器进阶:使用最小堆管理定时任务
c++·算法
hansang_IR2 小时前
【题解】 [省选联考 2021 A/B 卷] 卡牌游戏
c++·算法
lzx_0022 小时前
C++11(一)
开发语言·c++·算法