当前位置: 首页 > news >正文

设计模式类型

一、创建型模式

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

二、结构型模式

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

三、行为型模式

  1. 观察者模式
    • 核心:定义对象间一对多依赖关系,对象状态改变时通知依赖对象更新。
    • 场景:社交媒体平台用户发布动态通知关注者。
  2. 模板方法模式
    • 核心:定义算法骨架,将部分步骤延迟到子类实现。
    • 场景:制作蛋糕时不同蛋糕按模板实现特定步骤。
  3. 命令模式
    • 核心:将请求封装为对象,可对请求进行参数化、排队、记录日志和撤销操作。
    • 场景:游戏中封装玩家操作并控制执行。
  4. 状态模式
    • 核心:对象内部状态改变时改变其行为。
    • 场景:电梯系统不同状态下行为不同。
  5. 职责链模式
    • 核心:多个对象处理请求,避免发送者和接收者耦合,请求沿链传递直到被处理。
    • 场景:公司请假流程中申请按领导职责链传递。
  6. 解释器模式
    • 核心:定义语言文法表示和解释器,解释语言句子。
    • 场景:编译器解析和解释编程语言语法。
  7. 中介者模式
    • 核心:用中介对象封装对象交互,降低耦合度。
    • 场景:机场空中交通管制系统协调飞机起降和飞行。
  8. 迭代器模式
    • 核心:提供顺序访问聚合对象元素的方法,不暴露内部表示。
    • 场景:Java 集合类通过迭代器遍历元素。
  9. 访问者模式
    • 核心:在不改变元素类的前提下定义作用于元素的新操作。
    • 场景:图形编辑软件用访问者对图形进行不同操作。

相关文章:

  • Android 简化图片加载与显示——使用Coil和Kotlin封装高效工具类
  • 【更新至2023年】各省数字经济相关指标数据集(20个指标)
  • 最长公共子序列问题
  • Spring笔记02-bean的生命周期
  • 传统应用容器化迁移实践
  • 关于matlab和python谁快的问题
  • 【自学笔记】ELK基础知识点总览-持续更新
  • 如何通过数据可视化提升管理效率
  • JAVA-网络编程套接字Socket
  • mysql增、删、改和单表查询多表查询
  • 印刷电路板 (PCB) 的影响何时重要?在模拟环境中导航
  • 基于ssm的医院预约挂号系统
  • fircrawl本地部署
  • (UI自动化测试web端)第二篇:元素定位的方法_css定位之class选择器
  • 【AI】Orin NX+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功
  • LinkedIn数据抓取零风险指南:亮数据住宅代理实现企业级合规采集
  • 深入解析 RedissonMultiLock —— 分布式联锁的原理与实战
  • 我的第二个网站 - SpellCheck Game
  • java学习——函数式编程(1)
  • HTML5前端第六章节
  • 日本广岛大学一处拆迁工地发现疑似未爆弹
  • 季后赛主场优势消失之谜,这事竟然要赖库里
  • “降息潮”延续!存款利率全面迈向“1时代”
  • 市自规局公告收回新校区建设用地,宿迁学院:需变更建设主体
  • 援藏博士张兴堂已任西藏农牧学院党委书记、副校长
  • 国家发改委:目前有的核电项目民间资本参股比例已经达到20%