设计模式类型

一、创建型模式

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

二、结构型模式

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

三、行为型模式

  1. 观察者模式
    • 核心:定义对象间一对多依赖关系,对象状态改变时通知依赖对象更新。
    • 场景:社交媒体平台用户发布动态通知关注者。
  2. 模板方法模式
    • 核心:定义算法骨架,将部分步骤延迟到子类实现。
    • 场景:制作蛋糕时不同蛋糕按模板实现特定步骤。
  3. 命令模式
    • 核心:将请求封装为对象,可对请求进行参数化、排队、记录日志和撤销操作。
    • 场景:游戏中封装玩家操作并控制执行。
  4. 状态模式
    • 核心:对象内部状态改变时改变其行为。
    • 场景:电梯系统不同状态下行为不同。
  5. 职责链模式
    • 核心:多个对象处理请求,避免发送者和接收者耦合,请求沿链传递直到被处理。
    • 场景:公司请假流程中申请按领导职责链传递。
  6. 解释器模式
    • 核心:定义语言文法表示和解释器,解释语言句子。
    • 场景:编译器解析和解释编程语言语法。
  7. 中介者模式
    • 核心:用中介对象封装对象交互,降低耦合度。
    • 场景:机场空中交通管制系统协调飞机起降和飞行。
  8. 迭代器模式
    • 核心:提供顺序访问聚合对象元素的方法,不暴露内部表示。
    • 场景:Java 集合类通过迭代器遍历元素。
  9. 访问者模式
    • 核心:在不改变元素类的前提下定义作用于元素的新操作。
    • 场景:图形编辑软件用访问者对图形进行不同操作。
相关推荐
饼干哥哥1 天前
一夜之间,全世界的 Agent 能力提高了一个档次
设计模式·agent·代码规范
Kel1 天前
管道、IPC、Socket:你以为的三种技术,其实是同一件事
javascript·设计模式·node.js
我登哥MVP1 天前
进 Gang of Four 设计模式:建造者模式
java·设计模式·建造者模式
进击的前栈2 天前
鸿蒙实战:19 页面全景汇总与 7 大共享设计模式回顾
华为·设计模式·harmonyos
刀法如飞2 天前
Spring Boot 4.1 + JDK 25 DDD开源脚手架,面向 AI 编程
设计模式·架构·ai编程
折哥的程序人生 · 物流技术专研2 天前
第8篇:模板方法模式的优缺点与面试高频考点
java·设计模式·面试·模板方法模式·行为型模式·优缺点·扩充系列
workflower2 天前
人形机器人全身运动控制能力大幅提升
人工智能·深度学习·机器学习·设计模式·机器人·自动化
折哥的程序人生 · 物流技术专研2 天前
Java 23 种设计模式:从踩坑到精通 | 备忘录模式 —— 快照与撤销,给对象装一个“后悔药”
java·设计模式·备忘录模式·行为型模式·java设计模式·从踩坑到精通·撤销重做
Kel2 天前
万物皆 Runnable:LangChain 如何用一个接口统一模型、链与图
人工智能·设计模式·架构
ttod_qzstudio2 天前
【软考设计模式】策略模式:算法族的封装与动态切换精讲
设计模式·策略模式