当前位置: 首页 > 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;
}
http://www.lryc.cn/news/428481.html

相关文章:

  • Flask SQLALchemy 的使用
  • Metasploit漏洞利用系列(一):MSF完美升级及目录结构深度解读
  • C/C++|经典代码题(动态资源的双重释放与「按值传递、按引用传递、智能指针的使用」)
  • 西北乱跑娃 -- linux使用笔记
  • Kubectl基础命令使用
  • 推荐编译器插件:Fitten Code 更快更好的AI助手
  • ArcGIS Pro基础:状态栏显示栏的比例尺设置和经纬度位置
  • 微前端架构入门
  • [LitCTF 2023]导弹迷踪
  • win10安装wsl2(ubuntu20.04)并安装 TensorRT-8.6.1.6、cuda_11.6、cudnn
  • 信息搜集--敏感文件Banner
  • Qt 学习第六天:页面布局
  • 利用队列收集单双击和长按按键
  • AI工作流:低代码时代的革新者,重塑手机问答类应用生态
  • 配置MySQL主从,配置MySQL主主 +keeplive高可用
  • 第5节:Elasticsearch核心概念
  • 存储实验:华为异构存储在线接管与在线数据迁移(Smart Virtualization Smart Migration 特性)
  • 职业院校云计算实训室建设方案全景剖析
  • VS Code安装与vue项目新建
  • 如何在Java中将数据库查询结果转换为枚举类型
  • 秋招突击——8、20——知识补充——Java容器
  • IOS 06 OC调用Swift第三方框架
  • SAP和致远OA系统集成案例
  • 19 OptionMenu 组件
  • 【C语言】字符函数与字符串函数(上)
  • 机器学习系列—深入探索弗里德曼检验:非参数统计分析的利器
  • 【ubutnu18.04】k8s 部署4: worker节点配置1.31.0和containerd 1.7.20
  • android kotlin集成WorkManager实现定时获取数据
  • BvSP_ Broad-view Soft Prompting for Few-Shot Aspect Sentiment Quad Prediction
  • React+Vis.js(05):vis.js的节点的点击事件