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

工厂模式:简单工厂模式

工厂模式
简单工厂模式:子类对象较多,则引入工厂类来创建

简单工厂模式 流程:

img

实例:

某电视机厂为各个品牌代工生产电视机,可以使用简单工厂的模式来实现

img

#include <iostream>
#include <vector>
using namespace std;typedef enum ProductTypeTag
{Hair,Hisense,
}PRODUCTTYPE;//抽象产品类 TV(电视机类)
class TV
{
public:virtual void Show() = 0;virtual ~TV(){};//声明析构函数为虚函数,防止内存泄漏
};//具体产品类 HairTV(海尔电视类)
class HairTV : public TV
{
public:void Show(){cout<<"I'm HairTV "<<endl;}
};//具体产品类 HisenseTV(海信电视类)  
class  HisenseTV : public TV
{
public:void Show(){cout<<"I'm HisenseTV"<<endl;}
};// 工厂类 TVFactory(电视机工厂类)
class TVFactory
{
public:TV* CreateTV(PRODUCTTYPE type){switch (type){case Hair:return new HairTV();case Hisense:return new HisenseTV();default:return NULL;}}
};int main(int argc, char *argv[])
{// 创建工厂类对象TVFactory* myTVFactory = new  TVFactory();TV* hairTV = myTVFactory->CreateTV(Hair);if (hairTV != NULL)hairTV->Show();TV* hisenseTV = myTVFactory->CreateTV(Hisense);if (hisenseTV != NULL)hisenseTV->Show();delete  myTVFactory;myTVFactory = NULL;delete hairTV;hairTV = NULL;delete hisenseTV;hisenseTV = NULL;  return 0;
}

当子类对象很多时,就需要用简单工厂模式来统一创建。它的优点是 可以将对象的创建和使用逻辑区分开,主次分明;缺点是 对象类和工厂类的耦合度较高,不利于扩展

http://www.xdnf.cn/news/65053.html

相关文章:

  • 免费送源码:ava+springboot+MySQL 基于springboot 宠物医院管理系统的设计与实现 计算机毕业设计原创定制
  • 修改IP地址能否精确到地级市的县?——全面解析
  • 第39讲|决策树与作物分布建模:可解释的AI助力农业智能推演
  • WINDOWS下使用命令行读取本地摄像头FFMPEG+DirectShow,ffplay直接播放摄像头数据
  • arkTs:使用Refresh实现下拉刷新功能(含状态提示与动画控制)
  • MySQL知识点讲解
  • n2n 搭建虚拟局域网,实现内网穿透
  • C++计算 n! 中末尾零的数量
  • RIP动态路由(三层交换机+单臂路由)
  • 20250421在荣品的PRO-RK3566开发板的Android13下频繁重启RKNPU fde40000.npu: Adding to iommu gr
  • Java学习路线--自用--带链接
  • win11修改文件后缀名
  • ADB->查看某个应用的版本信息
  • 力扣面试150题--插入区间和用最少数量的箭引爆气球
  • TensorBoard如何在同一图表中绘制多个线条
  • 第 7 篇:总结与展望 - 时间序列学习的下一步
  • k8s集群GPU监控项说明
  • 【人工智能】使用vLLM高性能部署Qwen大语言模型
  • 10天学会嵌入式技术之51单片机-day-2
  • LVGL学习(一)(IMX6ULL运行LVGL,lv_obj_t,lv_obj,size,position,border-box,styles,events)
  • 4·25调价倒计时:SheinTemu美国站价格策略3大关键解读
  • 多路由器通过RIP动态路由实现通讯(单臂路由)
  • Dify忘记管理员密码,重置的问题
  • 数据结构中的各种排序
  • java反射 笔记
  • redis数据类型-位图bitmap
  • Java:多线程
  • C#处理网络传输中不完整的数据流
  • Maxscript调用Newtonsoft.Json解析Json
  • 制作一款打飞机游戏13:状态机