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

设计模式-工厂方法

#include "stdafx.h"//抽象类
class ISplitter
{
public:virtual void split()=0;virtual ~ISplitter(){}
};//具体类
class TxtSplitter : public ISplitter
{virtual void split(){printf("Txt splitter\n");}
};//工厂基类
class SplitterFactory
{
public:virtual ISplitter* CreateSplitter()=0;virtual ~SplitterFactory(){}
};//具体工厂
class TxtSplitterFactory: public SplitterFactory
{
public:virtual ISplitter* CreateSplitter(){m_pSplitter = new TxtSplitter();return m_pSplitter;}virtual ~TxtSplitterFactory(){if (m_pSplitter)delete m_pSplitter;}
private:ISplitter* m_pSplitter;
};//多态的new,此模块没有依赖具体的类,依赖的是抽象
void Model(SplitterFactory* pFactory)
{ISplitter* pSplitter = pFactory->CreateSplitter();pSplitter->split();
}int _tmain(int argc, _TCHAR* argv[])
{SplitterFactory* pFactory = new TxtSplitterFactory();Model(pFactory);delete pFactory;return 0;
}

相关文章:

设计模式-工厂方法

“对象创建”模式 通过“对象创建”模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。典型模式 Factory MethodAbstract Factory…...

Flask SQLALchemy 的使用

Flask SQLALchemy 的使用 安装 Flask-SQLAlchemy配置 Flask-SQLAlchemy定义模型创建数据库和表插入和查询数据更新和删除数据迁移数据库总结Flask-SQLAlchemy 是一个 Flask 扩展,它简化了 Flask 应用中 SQLAlchemy 的使用。SQLAlchemy 是一个强大的 SQL 工具包和对象关系映射(…...

Metasploit漏洞利用系列(一):MSF完美升级及目录结构深度解读

在信息安全领域,MetasploitFramework(MSF)是一个无处不在的工具,它集合了大量的渗透测试和漏洞利用模块,帮助安全专家识别和利用系统中的弱点。本文将深入探讨如何对Metasploit进行完美升级,以及对其核心目…...

C/C++|经典代码题(动态资源的双重释放与「按值传递、按引用传递、智能指针的使用」)

以下代码中你能看出其存在什么问题&#xff1f;如何修复&#xff0c;能给出几种方法&#xff1f;分别在什么场景下用哪种方法。 #include <iostream>class Buffer {public:Buffer() { std::cout << "Buffer created" << std::endl; }~Buffer() { s…...

西北乱跑娃 -- linux使用笔记

1.后台运行每天一个日志文件 nohup python3.8 manage.py >> $(date %Y-%m-%d).log 2>&1 &2.目录操作&#xff1a; ls&#xff1a;列出目录内容。cd&#xff1a;改变当前工作目录。pwd&#xff1a;显示当前工作目录的路径。mkdir&#xff1a;创建新目录。rmd…...

Kubectl基础命令使用

一.Kubectl 基础命令 格式&#xff1a; kubectl [command] [TYPE] [NAME] [FLAGS] kubectl 是 Kubernetes 的命令行工具&#xff0c;用于管理 Kubernetes 集群。以下是一些常用的 kubectl 命令及其选项&#xff1a; 常用命令 获取资源 列出所有资源类型&#xff08;Pods、De…...

推荐编译器插件:Fitten Code 更快更好的AI助手

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

ArcGIS Pro基础:状态栏显示栏的比例尺设置和经纬度位置

上图所示&#xff0c;界面下方最左侧是显示的比例尺&#xff0c;可以进行选择设置&#xff0c;也可以进行自定义设置 上图所示&#xff0c;可以手动录入比例尺&#xff0c;同时也可以对比例尺设置别名&#xff0c;比如【实验1】作为特定比例尺的标记 如上图所示&#xff0c;可以…...

微前端架构入门

什么是微前端? 定义 微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。 微前端是一种架构风格,它允许将一个复杂的大前端应用拆分成多个可以独立开发、部署的小型前端应用。这些小型前端应用通常被称为“子应用”或者“微前端应用…...

[LitCTF 2023]导弹迷踪

页面源码底部有多个js,查看浏览 查看ksrc/game.js发现flag...

win10安装wsl2(ubuntu20.04)并安装 TensorRT-8.6.1.6、cuda_11.6、cudnn

参考博客&#xff1a; 1. CUDA】如何在 windows 上安装 Ollama 3 open webui &#xff08;docker WSL 2 ubuntu nvidia-container&#xff09;&#xff1a;https://blog.csdn.net/smileyan9/article/details/140391667 2. 在 Windows 10 上 安装 W…...

信息搜集--敏感文件Banner

免责声明:本文仅做分享参考... 目录 git安装: git目录结构: 敏感目录泄露 1-git泄露 (1)常规git泄露 scrabble工具 (2)git回滚 (3)git分支 GitHacker工具 (4)git泄露的其他利用 .git重定向问题 2-SVN泄露 dvcs-ripper工具 3-小结 dirsearch目录扫描工具 敏感备…...

Qt 学习第六天:页面布局

如何设计页面&#xff1f; 有个类似沙盒模式的玩法&#xff0c;Qt Widget Designer可以更好的帮助我们设计页面 点击.ui文件进入 右上方可以看到四种常见的布局&#xff1a; 四种布局 &#xff08;一&#xff09;水平布局horizontalLayout&#xff1a;QHBoxLayout H 是 hori…...

利用队列收集单双击和长按按键

利用队列收集单双击和长按按键 引言 当我们仅仅通过在while循环里面进行判断按键类型的标志位, 然后进行操作的时候, 我们的最小例程很小, 所以能够实时的检测到按键,从而触发实验现象. 假如我们此时进入了一个事件处理函数呢 ? 并且这个这个函数的操作是不可被打断的, 如果此…...

AI工作流:低代码时代的革新者,重塑手机问答类应用生态

在这个数字化迅猛发展的时代&#xff0c;低代码技术正以惊人的速度改变着我们的生活方式。作为低代码人群的先锋&#xff0c;AI工作流技术正在以前所未有的方式&#xff0c;赋予非技术人群实现梦想的能力 &#x1f525;能用AI-低代码传送门&#xff1a;https://www.nyai.chat …...

配置MySQL主从,配置MySQL主主 +keeplive高可用

在大数据-Hadoop体系中 配置MySQL主主keeplive高可用 注意&#xff1a;这个是我两年前的word文档&#xff0c;可以当作参考文档有个思路参考一下&#xff0c;但是里面可能有些地方有误 另外 :关于一些企业级实战技术可以参考这篇mysql 物理备份 MySQL 全量备份 增量备份 差异…...

第5节:Elasticsearch核心概念

我的后端学习笔记大纲 我的ElasticSearch学习大纲 1.Lucene和Elasticsearch的关系: 1.Lucene&#xff1a;最先进、功能最强大的搜索库&#xff0c;直接基于lucene开发&#xff0c;非常复杂&#xff0c;api复杂2.Elasticsearch&#xff1a;基于lucene&#xff0c;封装了许多luc…...

存储实验:华为异构存储在线接管与在线数据迁移(Smart Virtualization Smart Migration 特性)

目录 目的实验环境实验步骤参考文档1. 主机安装存储多路径2. v2存储创建Lun&#xff0c;映射给主机&#xff1b;主机分区格式化&#xff0c;写数据3. 将v2存储映射该成映射到v3存储上(v3存储和v2之间链路搭建&#xff0c;测通&#xff0c;远端设备&#xff09;&#xff08;Smar…...

职业院校云计算实训室建设方案全景剖析

在信息化社会的今天&#xff0c;云计算作为一项关键技术&#xff0c;正在迅速改变着教育和培训的方式。本文旨在探讨如何通过"职业院校云计算实训室建设方案"&#xff0c;为学生提供一个现代化、高效的学习和研究环境&#xff0c;以适应云计算技术的发展和市场需求。…...

VS Code安装与vue项目新建

1、下载安装node.js、VS Code node.js官网下载 Visual Studio Code官网下载 # 查看node.js是否安装成功 node -v npm -v # 定义镜像路径 npm config set registry https://registry.npmmirror.com # 查看是否配置成功 npm config get# 安装webpack npm install webpack -g #…...

【AI实战课程】第三章:⾃然语⾔处理的常⻅任务和⽅法

分享一个大牛的人工智能教程。零基础&#xff01;通俗易懂&#xff01;风趣幽默&#xff01;希望你也加入到人工智能的队伍中来&#xff01;请轻击人工智能教程​​​https://www.captainai.net/troubleshooter 本阶段重点讲解AI⾃然语⾔处理中的主流任务&#xff0c;如⽂本分…...

ExtendedChars:Adafruit GFX的UTF-8扩展字符支持方案

1. 项目概述 ExtendedChars 是一个专为 Adafruit GFX 图形库设计的轻量级扩展组件&#xff0c;其核心工程目标是突破原生 GFX 库对 ASCII 字符集&#xff08;0x00–0x7F&#xff09;的硬性限制&#xff0c;实现对 UTF-8 编码多字节字符的可靠解析与渲染。该库并非重写显示驱动…...

告别GPS模块!用IRIG-B码为你的工业设备打造超高性价比的10ns同步时钟源

工业级10ns同步时钟方案&#xff1a;IRIG-B解码模块的实战应用指南 在工业自动化、电力系统和精密测试测量领域&#xff0c;时间同步精度往往直接关系到系统运行的可靠性与数据采集的准确性。传统GPS/北斗模块虽然普及&#xff0c;却面临着信号覆盖受限、设备成本高昂以及潜在安…...

LangChain实战:如何用ConversationalRetrievalQA构建带记忆的智能问答系统(附完整代码)

LangChain实战&#xff1a;构建带记忆的智能问答系统全流程解析 在当今AI应用开发领域&#xff0c;对话系统的"记忆力"已成为衡量其智能水平的关键指标。想象一下&#xff0c;当用户第三次询问"刚才提到的方案有哪些优势"时&#xff0c;如果AI回答"您…...

104人重写底层,OpenClaw装上「任务大脑」,连QQ机器人都能管

104位开发者联手&#xff0c;全球最火开源AI助手OpenClaw再出重磅更新&#xff0c;第一次给AI Agent装上「操作系统」级的任务控制面板&#xff1a;让AI能够自己管理自己&#xff0c;会排任务也会说不&#xff1a;Agent竞赛的下半场来了。一个月前&#xff0c;网络安全公司eSen…...

8元和3元的降AI工具差在哪用数据说话

降AI率工具市场里&#xff0c;价格跨度很大&#xff1a;有3元/千字的&#xff0c;有8元/千字的&#xff0c;差了2.5倍。 很多同学的第一反应是"贵的肯定好"&#xff0c;但这个逻辑在降AI工具领域不一定成立。这篇文章用实测数据说话&#xff0c;对比比话降AI&#x…...

别再手动量了!用Python+Open3D给BIM模型做‘CT扫描’,自动揪出施工误差(附完整代码)

BIM模型质量检测革命&#xff1a;PythonOpen3D实现毫米级施工误差智能分析 施工现场的质量控制一直是建筑行业的核心痛点。传统靠人工抽检的方式不仅效率低下&#xff0c;还容易遗漏隐蔽问题。想象一下&#xff0c;如果能把BIM模型当作"数字孪生体"&#xff0c;用三维…...

【WRF-Chem工具】grid_finn_fire_emis_v2020 工具官方用户指南解析

目录 1. 工具概述 (General Introduction)2. 针对 WRF 用户的特别说明 (SPECIAL NOTES FOR WRF)A. 输出文件与烟羽抬升 (Plume Rise)B. 变量、单位与植被类型C. 运行前提条件&#xff08;非常重要&#xff09;D. 时间分辨率与日变化E. WRF namelist.input 配置要求 3. fire_emi…...

避坑指南:Java Robot类在Windows/Linux下的兼容性问题及解决方案

Java Robot类跨平台避坑实战&#xff1a;Windows与Linux环境差异全解析 当你第一次尝试用Java Robot类实现自动化测试脚本时&#xff0c;可能会惊讶地发现&#xff1a;在Windows上运行完美的代码&#xff0c;放到Linux服务器上却莫名其妙报错。这不是你的代码问题&#xff0c;而…...

实战指南:用快马平台生成基于openclaw的mac数据清洗工具

最近在做一个数据清洗的小工具&#xff0c;正好用到了openclaw这个库&#xff0c;发现它在macOS上处理数据特别顺手。今天就把整个实战过程记录下来&#xff0c;顺便分享下我是怎么用InsCode(快马)平台快速生成这个工具的。 项目背景与需求分析 手头有个客户提供的销售数据csv&…...