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()) |
四、统一对比表
类型 | 核心问题 | 实现方式 | 典型模式 | 记忆口诀 |
---|---|---|---|---|
创建型 | 对象如何创建? | 封装对象生成逻辑 | 工厂、单例、建造者 | “造物有方” |
结构型 | 对象如何组织? | 组合/适配对象结构 | 适配器、装饰器、代理 | “搭桥铺路” |
行为型类 | 行为如何通过继承实现? | 父类定义行为框架 | 模板方法、解释器 | “父定规矩子执行” |
行为型对象 | 行为如何通过组合实现? | 对象间动态协作 | 策略、观察者、责任链 | “团队协作拼积木” |
五、终极记忆技巧
- 创建型:想象造物主(工厂、建造者)在决定如何生成对象。
- 结构型:想象建筑师(适配器、桥接)在组装零件。
- 行为型类:想象家族族长(模板方法)在制定家规。
- 行为型对象:想象团队队长(责任链)在分配任务。
一句话总结:
创建型造物,结构型搭桥,行为型分活;
类模式靠继承,对象模式靠组合。
AI模型版本:
中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-V3
采用深度思考模式,深度思考模型版本为R1
没有打开联网搜索
对话编号:2