23种设计模式简介

news/2025/3/11 2:18:13/

一、创建型(5种)

1.工厂方法

总店定义制作流程,分店各自实现特色披萨(北京店-烤鸭披萨,上海店-蟹粉披萨)
在这里插入图片描述

2.抽象工厂

套餐工厂(家庭装含大披萨+薯条,情侣装含双拼披萨+红酒)
在这里插入图片描述

3.建造者

定制披萨分步构造(选饼底→加料→选酱→烘烤时间)
在这里插入图片描述

4.原型

复制畅销款披萨配方(深克隆包含所有配料比例)

在这里插入图片描述

5.单例

全店唯一的烤箱温度控制器

在这里插入图片描述

二、结构型(7种)

6. 适配器

将方形插头转换为圆形接口(电压转换器)
在这里插入图片描述

7. 桥接

遥控器(抽象层)与不同电视品牌(实现层)解耦
在这里插入图片描述

9. 组合

组织架构树(CEO-部门经理-员工)
在这里插入图片描述

10. 装饰器

给咖啡动态加料(加奶泡3元,加焦糖2元)
在这里插入图片描述

11. 外观

智能家居一键模式(“回家模式”=开灯+空调+播放音乐)
在这里插入图片描述

12. 享元

棋盘游戏复用棋子对象(500个棋子只需2种颜色对象)
在这里插入图片描述

13. 代理

房产中介代管钥匙看房

在这里插入图片描述

三、行为型(11种)

14. 责任链

快递分拣系统(市级→区级→驿站)
在这里插入图片描述

16. 命令

餐厅点餐小票(支持撤销加菜操作)
在这里插入图片描述

17. 解释器

SQL语句解析器
在这里插入图片描述

18. 迭代器

地铁列车按站台顺序停靠
在这里插入图片描述

19. 中介者

机场塔台协调所有飞机起降
在这里插入图片描述

20. 备忘录

游戏存档/读档功能
在这里插入图片描述

21. 观察者

天气预报APP订阅通知
在这里插入图片描述

22. 状态

红绿灯自动切换(红灯→绿灯→黄灯循环)
在这里插入图片描述

23. 策略

导航APP多种路径算法(最短距离/避开收费/最快时间)
在这里插入图片描述

24. 模板方法

奶茶制作流程(煮茶→加料→封口)不可改步骤顺序
在这里插入图片描述

25. 访问者

超市收银台(不同商品用不同计价方式)
在这里插入图片描述


http://www.ppmy.cn/news/1578230.html

相关文章

机器学习数学基础:42.AMOS 结构方程模型(SEM)分析的系统流程

该流程图完整呈现了 AMOS 结构方程模型(SEM)分析的系统流程,具体步骤及内涵如下: 1. 模型设定 基于理论基础或研究假设,构建结构方程模型的初始框架,明确潜变量与显变量的关系、测量模型(因子…

【GPT入门】第8课 大语言模型的自洽性

【GPT入门】第8课 大语言模型的自洽性 1.自洽性概念2.代码(观察执行结果)3.自洽性核心思想 1.自洽性概念 大模型的自洽性(self - consistency)是指在推理阶段,大模型通过生成多个答案并选择出现频率最高的那个&#x…

openwrt路由系统------lua、uci的关系

1. Luci 的核心组成 (1) Lua 简介:Luci 的界面和逻辑几乎完全使用 Lua 脚本语言编写。Lua 是一种轻量级、高效的嵌入式脚本语言,适合在资源受限的路由器环境中运行。作用: 生成动态 Web 页面(与后端交互渲染 HTML)。处理用户提交的表单数据(如修改 Wi-Fi 密码)。调用系…

在uni-app中使用SQLite实现离线下数据同步:从封装到实践

场景: 在移动应用开发中,确保应用在无网络连接时仍能正常运行并进行数据同步至关重要。 对于uni-app开发者而言,SQLite是理想的本地存储解决方案,支持结构化数据的存储和检索。本文将介绍如何在uni-app项目中使用SQLite实现离线…

【AI学习从零至壹】Pytorch逻辑回归

Pytorch逻辑回归 线性回归简单线性回归的参数估计概率和似然的区别 最⼤似然估计似然函数对数似然函数 逻辑回归梯度下降法下⼭问题梯度与学习率学习率 梯度下降法的模拟与可视化学习率对梯度的影响学习率的最佳取值 梯度更新逻辑回归模型构建及训练流程 线性回归 线性回归的⽬…

创建Electron35 + vue3 + electron-builder项目,有很过坑,记录过程

环境: node v20.18.0 npm 11.1.0 用到的所有依赖: "dependencies": {"core-js": "^3.8.3","vue": "^3.2.13","vue-router": "^4.5.0"},"devDependencies": {"ba…

React基础之useInperativehandlle

通过ref调用子组件内部的focus方法来实现聚焦 与forwardRef类似,但是forwardRef是通过暴露整个Ref来实现,而useInperativehandle是通过对外暴露一个方法来实现的 import { forwardRef, useImperativeHandle, useRef, useState } from "react";…

软件测试の概念之测试分类质量模型测试用例

什么是软件测试 使用技术手段验证软件是否满足使用需求的过程 软件测试用于保证软件质量的可靠性 设计对软件系统进行评估,发现其中的错误,缺陷和问题,并确保软件符合规范和用户需求。 软件测试目的 减少软件缺陷(bug),保证软件的质量 软件测试工程…