Day48(补)【AI思考】-设计模式三大类型统一区分与记忆指南

文章目录

  • 设计模式三大类型统一区分与记忆指南
      • **一、创建型模式(对象如何生?)**
      • **二、结构型模式(对象如何组?)**
      • **三、行为型模式(对象如何动?)**
        • **1. 行为型类模式(靠继承)**
        • **2. 行为型对象模式(靠组合)**
      • **四、统一对比表**
      • **五、终极记忆技巧**

设计模式三大类型统一区分与记忆指南

让思想碎片重焕生机的灵魂:

行为模式分三类,每一类又有好多不同的模式,特别是行为式模式,还要区分成行为型类模式,和行为型对象模式,好难去记忆和理解,你想想办法帮帮我

这只是把行为型类模式和行为型对象模式区分了,其他两种结构型模式和创建型模式呢,并且最好你能统一在一起去进行区分和记忆,为了便于理解,最好都要有例子

设计模式三大类型统一区分与记忆指南
设计模式分为创建型、结构型、行为型三大类,每类的核心目标与典型模式不同。通过核心目的 + 典型场景 + 实例的对比,可以轻松区分记忆。


一、创建型模式(对象如何生?)

核心目标解耦对象的创建过程,提供灵活、可复用的对象生成方式。
类比:工厂生产产品(如何造?谁来造?造什么样的?)。

模式核心思想典型场景实例
工厂方法子类决定创建哪种对象需要扩展产品类型(如不同数据库连接)DatabaseFactory.createConnection()
抽象工厂创建产品族(一组相关对象)跨平台UI组件(按钮+文本框成套生成)GUIFactory.createButton() + createTextbox()
建造者分步骤构造复杂对象配置多参数的复杂对象(如电脑组装)ComputerBuilder.addCPU().addRAM().build()
原型克隆现有对象生成新对象避免重复初始化(如游戏角色复制)Enemy enemyClone = originalEnemy.clone()
单例确保全局唯一实例数据库连接池、日志管理器Logger.getInstance().log("msg")

二、结构型模式(对象如何组?)

核心目标组合对象/类形成更大的结构,提升灵活性和可扩展性。
类比:搭积木(如何组装零件?如何适配接口?)。

模式核心思想典型场景实例
适配器转换接口使不兼容的类协同工作旧系统接入新接口(如USB转Type-C)LegacySystemAdapter(new System()).request()
桥接分离抽象与实现,独立变化多维度扩展(如不同形状+颜色的图形)Shape抽象类 + Color接口组合
组合树形结构统一处理部分与整体文件系统(文件夹+文件统一操作)FileSystemNode.add(child)
装饰器动态添加职责(不修改原类)扩展功能(如带缓冲的输入流)BufferedInputStream(new FileInputStream())
代理控制对对象的访问(延迟加载/权限)图片懒加载、接口权限校验ImageProxy.loadRealImage()

三、行为型模式(对象如何动?)

核心目标管理对象间的协作与职责分配,提升交互灵活性。
类比:团队协作(谁负责什么?如何传递任务?)。

1. 行为型类模式(靠继承)
模式核心思想典型场景实例
模板方法父类定义算法骨架,子类填充细节统一流程(如代码编译步骤)AbstractClass.templateMethod()
解释器用类结构表示语法规则解析特定领域语言(如SQL解析)SQLInterpreter.parse("SELECT * FROM table")
2. 行为型对象模式(靠组合)
模式核心思想典型场景实例
策略动态切换算法支付方式切换(微信/支付宝)PaymentContext.setStrategy(new WechatPay())
观察者一对多的依赖通知机制事件监听(如按钮点击通知)Button.addClickListener(new Listener())
责任链链式传递请求直到被处理日志分级处理(如Error→Info)LoggerChain.handleRequest(msg)
命令封装请求为对象撤销/重做操作(如编辑器命令)CommandManager.execute(new CopyCommand())

四、统一对比表

类型核心问题实现方式典型模式记忆口诀
创建型对象如何创建?封装对象生成逻辑工厂、单例、建造者“造物有方”
结构型对象如何组织?组合/适配对象结构适配器、装饰器、代理“搭桥铺路”
行为型类行为如何通过继承实现?父类定义行为框架模板方法、解释器“父定规矩子执行”
行为型对象行为如何通过组合实现?对象间动态协作策略、观察者、责任链“团队协作拼积木”

五、终极记忆技巧

  1. 创建型:想象造物主(工厂、建造者)在决定如何生成对象。
  2. 结构型:想象建筑师(适配器、桥接)在组装零件。
  3. 行为型类:想象家族族长(模板方法)在制定家规。
  4. 行为型对象:想象团队队长(责任链)在分配任务。

一句话总结
创建型造物,结构型搭桥,行为型分活;
类模式靠继承,对象模式靠组合。

AI模型版本:

中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-V3

采用深度思考模式,深度思考模型版本为R1

没有打开联网搜索

对话编号:2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Rook-ceph(1.92最新版)

安装前准备 #确认安装lvm2 yum install lvm2 -y #启用rbd模块 modprobe rbd cat > /etc/rc.sysinit << EOF #!/bin/bash for file in /etc/sysconfig/modules/*.modules do[ -x \$file ] && \$file done EOF cat > /etc/sysconfig/modules/rbd.modules &l…

Transformer技术报告:架构与原理

【深度学习】Transformer 技术报告&#xff1a;架构与原理 一、引言二、Transformer 的基本架构2.1 总体架构2.2 编码器&#xff08;Encoder&#xff09;2.3 解码器&#xff08;Decoder&#xff09;2.4 输入嵌入与位置编码 三、Transformer 的关键特性四、应用场景五、总结 一、…

电子制造企业数字化转型实战:基于Odoo构建MES平台的深度解决方案

作者背景 拥有8年乙方项目经理经验、8年甲方信息化管理经验&#xff0c;主导过12个Odoo制造业项目落地&#xff0c;服务客户涵盖消费电子、汽车电子、工业设备等领域。本文基于华东某电子企业&#xff08;以下简称"A公司"&#xff09;的实战案例&#xff0c;解析行业…

【实战】用飞书多维表格+AI DeepSeeker做股票量价分析

用2万元起步资金&#xff0c;进行A股实战模拟。&#xff08;量化分析无法知晓 消息面的事宜&#xff0c;是一个不足&#xff0c;但是可以代替 哪些一般水平的 股票分析师&#xff09; https://zk4wn8rhv2.feishu.cn/base/OABmbEBa4a4zgOsw5JlcrfIPnzh?tabletblMK2bDhPW5Am9b&a…

计算四个锚点TOA定位中GDOP的详细步骤和MATLAB例程

该MATLAB代码演示了在三维空间中,使用四个锚点的TOA(到达时间)定位技术计算几何精度衰减因子(GDOP)的过程。如需帮助,或有导航、定位滤波相关的代码定制需求,请联系作者 文章目录 DOP计算原理MATLAB例程运行结果示例关键点说明扩展方向另有文章: 多锚点Wi-Fi定位和基站…

Vue 记录用户进入页面的时间、离开页面的时间并计算时长

在 Vue 项目中&#xff0c;要记录用户进入页面的时间、离开页面的时间&#xff0c;并在用户离开时计算时长并调用后端接口&#xff0c;可以借助 Vue 的生命周期钩子和浏览器的一些事件来实现。以下是具体的实现步骤和示例代码&#xff1a; 实现思路 记录进入时间&#xff1a;…

蓝桥杯单片机基础部分——单片机介绍部分

前言 这个部分是额外的&#xff0c;我看我有的学弟学妹基础比较差&#xff0c;对板子上面的模块不太熟悉&#xff0c;这里简单的介绍一下 蓝桥杯单片机 这个就是蓝桥杯单片机的板子&#xff0c;它的主控芯片是&#xff08;IAP15F2K61S2&#xff09;&#xff0c;这里就对他常用…

场外个股期权下单后多久成交?场外个股期权对投资组合的影响

对普通老板们而言&#xff0c;它如同精密手术刀——用得好可精准优化投资组合&#xff0c;用不好则可能伤及本金。记住两个关键&#xff1a;一是永远用"亏得起的钱"参与&#xff0c;二是把合约条款当"药品说明书"逐字研读。 场外个股期权下单后多久成交&am…

sqlserver多表查询(内连接,外连接)

1.简单两表查询 2.内连接查询&#xff1a;两张表 3.内连接查询&#xff1a;三张表 4.外连接查询&#xff1a;左外联&#xff0c;右外联同理 5.全外联 6.自连接 一个表中某些数据有关联&#xff0c;相当于把一张表拆成了两张表

SQL Server 运算符优先级

在 SQL Server 中&#xff0c;运算符的优先级决定了在没有使用括号明确指定计算顺序时&#xff0c;运算符的执行顺序。 运算符优先级列表 括号 () 一元运算符 &#xff08;正号&#xff09;-&#xff08;负号&#xff09;~&#xff08;按位取反&#xff09; 乘法、除法和取模…

黑马JS教程笔记(JavaScript教程)——JS基础

黑马pink老师-JavaScript基础语法 黑马程序员前端JavaScript入门到精通全套视频教程&#xff0c;javascript核心进阶ES6语法、API、js高级等基础知识和实战教程 文章目录 ~~黑马pink老师-JavaScript基础语法~~001-计算机编程基础002-计算机编程基础编程语言和标记语言区别 00…

LabVIEW用CANopen的设备属性配置与心跳消息和PDO读取

本示例展示了如何通过SDO&#xff08;服务数据对象&#xff09;配置设备属性&#xff0c;以及如何读取从设备周期性发送的心跳消息和PDO&#xff08;进程数据对象&#xff09;消息。通过该示例&#xff0c;可以有效地进行设备配置并实现数据监控&#xff0c;适用于CANopen网络中…

北斗导航 | 周跳探测算法(matlab源码)

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 周跳 1. 高次差法2. 相位减伪距法3. TurboEdit算法(MW+GF组合)4. 多项…

【区块链】深入理解椭圆曲线密码学(ECC)

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 深入理解椭圆曲线密码学(ECC)1. 概述2. 椭圆曲线的数学基础2.1 基本定义2.2 有限…

JavaScript系列(75)--代理模式专题

JavaScript代理模式专题 &#x1f3ad; JavaScript的Proxy提供了强大的对象代理能力&#xff0c;能够拦截和自定义对象的基本操作。本文将深入探讨Proxy的各种模式、应用场景和最佳实践。 代理基础 &#x1f31f; &#x1f4a1; 小知识&#xff1a;代理模式允许我们创建一个对…

如何优化Spark作业的性能

优化Spark作业的性能是一个综合性的任务&#xff0c;涉及多个方面的调整和优化。以下是一些关键的优化策略&#xff1a; 一、开发调优 避免创建重复的RDD&#xff1a; 对于同一份数据&#xff0c;只应该创建一个RDD&#xff0c;避免多次创建RDD来增加性能开销。在对不同的数据…

SOCKET建立简单的tcp服务端与客户端通信

socket是什么 socket可以使两台机子建立连接&#xff0c;就像连接风扇与电源的插座一样&#xff0c;socket可以使服务端与客户端建立连接&#xff0c;服务端就像供电厂&#xff0c;而客户端就像用电器&#xff0c;而socket就是连接二者的插座。 建立简单的连接 如果我们想在客…

blender笔记2

一、物体贴地 物体->变换->对齐物体 ->对齐弹窗(对齐模式&#xff1a;反方&#xff0c;相对于&#xff1a;场景原点&#xff0c;对齐&#xff1a;z)。 之后可以设置原点->原点--3d游标 二、面上有阴影 在编辑模式下操作过后&#xff0c;物体面有阴影。 数据-&g…

如何正确安装Stable Diffusion Web UI以及对应的xFormers

本文是我总结的步骤&#xff0c;验证了几次保证是对的。因为正确的安装 Stable Diffusion Web UI 以及对应的 xFormers 实在是太麻烦了&#xff0c;官方和网上的步骤都是残缺和分散的&#xff0c;加上国内网络速度不理想&#xff0c;所以需要一些额外步骤&#xff0c;之前研究出…

hive(hdfs)补数脚本

pb级别迁移通常要持续1个月以上。一般的过程是&#xff0c;全量迁移&#xff0c;追平数据&#xff0c;增量同步&#xff0c;校验&#xff0c;补数。 这里的指定补数脚本&#xff1a; 输入需要补数的表&#xff0c;如Input.txt&#xff0c;如果有分区则加补此分区&#xff0c;没…