设计模式类型

一、创建型模式

  1. 单例模式
    • 核心:确保类仅有一个实例,提供全局访问点。
    • 场景:数据库连接池避免频繁创建和销毁连接。
  2. 工厂模式
    • 核心:定义创建对象的接口,由子类决定实例化的类。
    • 场景:游戏开发中按需求创建不同类型武器。
  3. 抽象工厂模式
    • 核心:提供创建系列相关或依赖对象的接口,无需指定具体类。
    • 场景:游戏开发中创建不同风格场景下的对象。
  4. 建造者模式
    • 核心:将复杂对象构建与表示分离,同一构建过程可创建不同表示。
    • 场景:汽车制造中构建不同配置的汽车。
  5. 原型模式
    • 核心:通过拷贝原型实例创建新对象。
    • 场景:图形设计软件复制图形对象。

二、结构型模式

  1. 代理模式
    • 核心:为对象提供代理以控制对其的访问。
    • 场景:网络访问代理,如访问国外网站。
  2. 装饰器模式
    • 核心:动态给对象添加额外职责,比生成子类更灵活。
    • 场景:咖啡店中用调料装饰咖啡。
  3. 适配器模式
    • 核心:将类的接口转换为客户期望的接口,使不兼容的类能协作。
    • 场景:不同国家使用电器时的电源适配器。
  4. 桥接模式
    • 核心:分离抽象部分与实现部分,使其可独立变化。
    • 场景:图形绘制中使图形和颜色独立变化。
  5. 组合模式
    • 核心:将对象组合成树形结构表示 "部分 - 整体" 层次,统一操作单个和组合对象。
    • 场景:文件系统对文件夹和文件的统一操作。
  6. 外观模式
    • 核心:为子系统接口提供一致界面,方便使用。
    • 场景:智能家居系统通过统一接口控制多个设备。
  7. 享元模式
    • 核心:运用共享技术支持大量细粒度对象。
    • 场景:文字处理软件共享字符以减少内存占用。

三、行为型模式

  1. 观察者模式
    • 核心:定义对象间一对多依赖关系,对象状态改变时通知依赖对象更新。
    • 场景:社交媒体平台用户发布动态通知关注者。
  2. 模板方法模式
    • 核心:定义算法骨架,将部分步骤延迟到子类实现。
    • 场景:制作蛋糕时不同蛋糕按模板实现特定步骤。
  3. 命令模式
    • 核心:将请求封装为对象,可对请求进行参数化、排队、记录日志和撤销操作。
    • 场景:游戏中封装玩家操作并控制执行。
  4. 状态模式
    • 核心:对象内部状态改变时改变其行为。
    • 场景:电梯系统不同状态下行为不同。
  5. 职责链模式
    • 核心:多个对象处理请求,避免发送者和接收者耦合,请求沿链传递直到被处理。
    • 场景:公司请假流程中申请按领导职责链传递。
  6. 解释器模式
    • 核心:定义语言文法表示和解释器,解释语言句子。
    • 场景:编译器解析和解释编程语言语法。
  7. 中介者模式
    • 核心:用中介对象封装对象交互,降低耦合度。
    • 场景:机场空中交通管制系统协调飞机起降和飞行。
  8. 迭代器模式
    • 核心:提供顺序访问聚合对象元素的方法,不暴露内部表示。
    • 场景:Java 集合类通过迭代器遍历元素。
  9. 访问者模式
    • 核心:在不改变元素类的前提下定义作用于元素的新操作。
    • 场景:图形编辑软件用访问者对图形进行不同操作。
相关推荐
MC皮蛋侠客4 小时前
Redis 系列(八):缓存设计模式与一致性——从 Cache Aside 到防雪崩
redis·缓存·设计模式
莫得感情 o6 小时前
设计模式 18 · 状态模式
设计模式·状态模式
莫得感情 o6 小时前
设计模式 17 · 责任链模式
设计模式·责任链模式
用户9385156350715 小时前
从零在浏览器里跑 DeepSeek-R1:WebGPU + Transformer.js 全链路实战
前端·设计模式·typescript
AI人工智能+电脑小能手20 小时前
大白话说Java设计模式-04-工厂方法模式(业务实战篇)
java·设计模式·工厂方法模式·架构设计·代码解耦
今天的砖头有点烫手啊1 天前
AI Agent 开发实战(十):Agent 设计模式(ReAct / Plan-Execute / Reflection)
人工智能·react.js·设计模式
董员外1 天前
RAG 系统进化论(十):可运营 RAG,从原型到长期运行的知识系统
人工智能·后端·设计模式
莫得感情 o1 天前
设计模式 15 · 模板方法模式
设计模式·模板方法模式
岭南灯火2 天前
前端通用交互式几何编辑器的开发经验
前端·设计模式·架构