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

设计模式(9)——创建型模式之工厂方法

设计模式(9)——创建型模式之工厂方法

    • 工厂方法
      • 作用
      • 结构
      • 伪代码
      • 适用场景

在这里插入图片描述

工厂方法

作用

工厂方法是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。

结构

在这里插入图片描述

  1. 产品(Product)将会对接口进行声明。对于所有由创建者及其子类构建的对象,这些接口都是通用的。
  2. 具体产品(Concrete Products)是产品接口的不同实现。
  3. 创建者(Creator)类声明返回产品对象的工厂方法。该方法的返回对象类型必须与产品接口相匹配。
  4. 具体创建者(Concrete Creators) 将会重写基础工厂方法,使其返回不同类型的产品。
    可以在创建者(Creator)中声明抽象方法,由具体创建者(Concrete Creators)以不同的实现返回产品(Product)对象;也可以在创建者(Creator)中返回默认的产品(Product)对象。

伪代码

以下示例演示了如何使用工厂方法开发跨平台UI(用户界面)组件,并同时避免客户代码与具体 UI 类之间的耦合。基础对话框类使用不同的UI 组件渲染窗口。在不同的操作
系统下, 这些组件外观或许略有不同, 但其功能保持一致。Windows 系统中的按钮在 Linux 系统中仍然是按钮。
在这里插入图片描述
如果使用工厂方法,就不需要为每种操作系统重写对话框逻辑。如果我们声明了一个在基本对话框类中生成按钮的工厂方法,那么我们就可以创建一个对话框子类,并使其通过工
厂方法返回Windows 样式按钮。子类将继承对话框基础类的大部分代码,同时在屏幕上根据 Windows 样式渲染按钮。

// Button作为产品接口,将声明所有具体产品都必须实现的操作。

相关文章:

  • golang -- 如何让main goroutine等一等
  • 微信小程序之按钮短时间内被多次点击问题
  • 【taro3 + vue3 + webpack4】在微信小程序中的请求封装及使用
  • DeepSeek 赋能 VR/AR:开启智能交互新纪元
  • 基于开源AI大模型与S2B2C生态的个人品牌优势挖掘与标签重构研究
  • vue使用路由技术实现登录成功后跳转到首页
  • Vue3在使用渲染函数h时候使用v-loading
  • 「数学::博弈论」Nim游戏(尼姆游戏)/ Luogu P2197(C++)
  • RabbitMQ是什么?应用场景有哪些?
  • 基于EMD-PCA-LSTM的光伏功率预测模型研究
  • OpenEvidence AI临床决策支持工具平台研究报告
  • 【Python】抽象基类ABC
  • 【springcloud学习(dalston.sr1)】服务消费者通过restTemplate来访问服务提供者(含源代码)(五)
  • 仿生眼机器人(人脸跟踪版)系列之一
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的智能零售柜技术方案
  • Web 架构之会话保持深度解析
  • 使用GRPO训练调度事件的语言模型!
  • Vue3学习(组合式API——Watch侦听器详解)
  • TTS-Web-Vue系列:Vue3实现侧边栏与顶部导航的双向联动
  • 【愚公系列】《Manus极简入门》038-数字孪生设计师:“虚实映射师”
  • 李家超:明日起香港特区护照持有人可免签入境阿联酋
  • 袁思达已任中国科学院办公厅主任
  • 重庆市委原常委、政法委原书记陆克华被决定逮捕
  • 经济日报:美国滥施汽车关税损人不利己
  • 北斗专访|特赞科技范凌:现在AI主要是“说话”,接下来要“干活”了
  • 王毅谈中拉论坛第四届部长级会议重要共识