当前位置: 首页 > news >正文

8. 工厂方法模式

一 典型工厂方法模式(Factory Method)结构图

在这里插入图片描述

二 典型工厂模式实现

在这里插入图片描述

测试代码

#include <iostream>
using namespace std;
 
class Product{
public:
    string name;
    virtual void show(){
        cout << "我是:";
    }
};
class Desk : public Product
{
public:
    Desk(){
        name = "桌子";
    }
    void show(){
        Product::show();
        cout << name  << endl;
    }
};
 
class Cup : public Product
{
public:
    Cup(){
        name = "杯子";
    }
    void show(){
        Product::show();
        cout << name  << endl;
    }
};
class IFactory{
public:
    virtual Product* createProduct() = 0;
};
 
class DeskFactory : public IFactory{
public:
    Product* createProduct(){
        return new Desk();
    }
};
class CupFactory : public IFactory{
public:
    Product* createProduct(){
        return new Cup();
    }
};
 
int main()
{
    IFactory *ifactory = new DeskFactory();
    Product *product = ifactory->createProduct();
    product->show();
 
    IFactory *ifactory_2 = new CupFactory();
    Product *product_2 = ifactory_2->createProduct();
    product_2->show();
    return 0;
}

测试结果:

我是:桌子
我是:杯子

参考:https://lkmao.blog.csdn.net/article/details/128952843

http://www.dtcms.com/a/1736.html

相关文章:

  • 使用vpn/代理后电脑无法正常上网
  • Android 12修改usb tp触摸唤醒
  • 外包干了3个月,技术退步明显。。。。。
  • CHATGPT中国免费网页版有哪些-CHATGPT中文版网页
  • Vulnhub-driftingbules:5 靶机复现完整过程
  • 踩坑 | vue动态绑定img标签src属性的一系列报错
  • Python二级 每周练习题20
  • vue3学习笔记
  • C语言每日一题(9):跳水比赛猜名次
  • Java初始化大量数据到Neo4j中(一)
  • Openresty(二十二)ngx.balance和balance_by_lua终结篇
  • mySQL 安装
  • RocketMQ —消费者负载均衡
  • leetcode刷题笔记/代码随想录笔记——移除字符串中多余空格
  • 数组07-滑动窗口、HashMap
  • Leetcode.2571 将整数减少到零需要的最少操作数
  • Lnmp架构之mysql数据库实战2
  • 学习windows系统让python脚本在后台运行的方法
  • Java如何解决浮点数计算不精确问题
  • 从零开始之了解电机及其控制(10)空间矢量理论
  • 代理IP与Socks5代理:跨界电商之安全防护与智能数据引擎
  • Leetcode.2522 将字符串分割成值不超过 K 的子字符串
  • 【数据结构--八大排序】之归并排序
  • C++qt Day10
  • 【C++杂货铺】一颗具有搜索功能的二叉树
  • EPICS教程4-- 在Windows上安装EPICS base
  • oracle 乱码(编码为AMERICAN_AMERICA.US7ASCII)问题解决
  • 高云FPGA系列教程(9):cmd-parser串口命令解析器移植
  • QT day3
  • 如何一键提取微信背景图?