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

设计模式之【工厂模式】

工厂模式(Factory Pattern)

工厂模式是设计模式中创建型模式的核心代表,核心思想是将对象的创建逻辑封装起来,让调用方无需关注对象的具体创建细节(比如 new 哪个子类、传什么参数),只需要通过 “工厂” 获取对象即可。
它主要分为 3 种核心形式(从简单到复杂

核心思想 & 解决的问题

  1. 核心目的
    解耦:对象创建逻辑(比如判断条件、初始化参数)和业务逻辑分离;
    简化调用:调用方只需告诉工厂 “要什么”,不用自己 new 对象;
    易扩展:新增对象类型时,只需修改工厂,无需修改所有调用处(符合 “开闭原则”)。
  2. 生活类比
    你去咖啡店买咖啡:
    不用自己磨豆、煮咖啡(不用关注对象创建细节);
    只需告诉店员 “要拿铁”(调用工厂);
    店员(工厂)负责制作对应的咖啡(创建对象);
    新增 “美式咖啡” 时,只需店员学做新咖啡(修改工厂),你只需说 “要美式” 即可(调用方无感知)。

三种工厂模式的实现

简单工厂模式(静态工厂)

适用场景:创建的对象类型少、逻辑简单,是工厂模式的基础(严格来说不算 GOF 标准设计模式,但最常用)。
实现步骤:
定义产品接口 / 父类;
实现具体产品类;
编写工厂类,提供静态方法,根据参数创建对应产品对象。

工厂方法模式

适用场景:产品类型多、需要频繁扩展(比如新增咖啡类型时,不想修改原工厂代码),符合 “开闭原则”。
实现步骤:
定义产品接口;
实现具体产品类;
定义工厂接口(包含创建产品的抽象方法);
为每个产品实现对应的工厂类。

抽象工厂模式

适用场景:需要创建 “产品族”(一组相关产品),比如咖啡店不仅卖咖啡,还卖甜点(咖啡 + 甜点组成一套套餐)。
实现步骤:
定义多个产品接口(比如咖啡、甜点);
实现具体产品类(拿铁 + 提拉米苏、美式 + 布朗尼);
定义抽象工厂接口(包含创建所有产品的方法);
实现具体工厂类(生产一套产品族)。
创建不同的数据库连接池涉及抽象工厂模式。

http://www.jsqmd.com/news/633024/

相关文章:

  • Phi-4-mini-reasoning助力计算机视觉项目:YOLO系列模型选型与部署推理
  • Qwen3.5-9B开源模型价值:替代ChatGLM3-6B实现更高逻辑推理精度
  • MIPI OV13855 的整体获取图像流程:从设备树到用户态取帧
  • 浦语灵笔2.5-7B数据库应用:基于PostgreSQL的向量搜索增强方案
  • 面试官: 高并发系统常见问题解析(答案深度解析)持续更新
  • AI智能二维码工坊用户体验:移动端适配与扫码优化建议
  • 网易云音乐NCM格式解密:3步快速解锁加密音乐的终极指南
  • Chord视频理解工具在野生动物保护中的应用
  • 【大模型工程化CI/CD黄金标准】:20年ML系统架构师亲授5大不可绕过的流水线设计陷阱与避坑清单
  • 微软GraphRAG唱罢,清华GroupRAG登场
  • Kimi-VL-A3B-Thinking效果对比:在MMMU上超越GPT-4o的多学科图文推理
  • firewalld检查这个防火墙的状态
  • 如何在Blender中轻松导入导出3MF格式:3D打印工作流完整指南
  • 面试官: 异步处理在高并发系统中的应用(答案深度解析)持续更新
  • Qwen-Image-2512-Pixel-Art-LoRA 提示词工程进阶:掌握控制像素艺术风格与细节的秘诀
  • TelemetryHarborSDK:ESP32嵌入式遥测通信轻量框架
  • 软件解耦管理中的消息队列应用
  • 如何用feishu-doc-export实现企业文档自动化迁移:完整实施指南
  • 2025_NIPS_Structured Reinforcement Learning for Combinatorial Decision-Making
  • 基于51单片机智能震动频率检测蓝牙app
  • 小白必看:Qwen3-ASR-0.6B语音识别镜像开箱即用教程
  • 从零到一:OpenVLA 7B模型本地微调实战与避坑指南
  • GLM-4.1V-9B-Base在智能客服中的应用:图片问题自动解答
  • 为什么92%的MLOps团队仍在用错误的成本模型?——揭穿“按GPU小时计费”背后的4大财务陷阱与合规风险
  • 开箱即用的语音合成方案:CosyVoice-300M Lite镜像深度体验
  • 图图的嗨丝造相-Z-Image-Turbo企业级部署:Nginx反向代理+HTTPS安全访问
  • 告别抽佣,源码交付,新能源充电桩运营管理平台支持聚合管理云快充、特来电、星星充电,灵活配置分时电价、停车限免、超时占位费
  • 嵌入式技术趋势分析
  • S2-Pro代码审查助手:自动发现潜在Bug与安全漏洞
  • Bidili Generator新手必看:参数设置详解与生成高质量图片技巧