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

总结心得:各设计模式使用场景

  • 单例模式:创建单个对象

  • 工厂模式:创建对象交给工厂完成,当需要创建的对象是一系列相互关联或相互依赖的产品族时

  • 原型模式:克隆对象,避免创建初始化开销

  • 建造者模式:创建一个复杂对象,该对象有多个部分组成,Builder 组装这多个对象

  • 代理对象:代替对真实对象访问,保护和隐藏目标对象

  • 适配器模式:系统提供的接口客户端无法使用,这时使用适配器适配该抽象接口

  • 装饰器模式:增强目标对象,不改变原有类结构的情况下,为对象添加新的行为或功能

  • 桥接模式:对象本身有沿着多个维度变化的趋势,比如:视频文件格式有avi、rmvb等等格式,操作系统有Windows、Linux等等系统,桥接模式把这两种东西具有的多个维度结合起来

  • 外观模式:系统功能复杂,外观模式提供一个简单的接口供客户调用,调用功能的过程交给接口完成

  • 组合模式:组合模式正是应树形结构而生,所以组合模式的使用场景就是出现树形结构的地方。比如:文件目录显示,多级目录呈现等树形结构数据的操作。

  • 享元模式:预先创建一些对象存储起来,并提供工厂返回这些对象,避免使用到时重复创建大量相似应用

  • 模板方法模式:多个类的步骤存在相同的一些步骤,把这些步骤提取成抽象类,抽象类再提供抽象方法供子类来具体实现,调用抽象类的方法,实际调用的事子类重写的方法

  • 策略模式:一个问题有多种处理算法,各算法彼此完全独立,且要求对客户隐藏具体算法的实现细节时

  • 命令模式:

    • 可以使请求排队执行请求
    • 调用者和请求接收者解耦,使得调用者和接收者不直接交互
    • 结合组合模式,将多个命令装配成一个组合命令,实现宏命令
    • 结合备忘录模式,实现命令的撤销(Undo)与恢复(Redo)
  • 责任链模式:一个请求不清楚是被哪个处理者处理时每个都通过一下直到被处理为止,或者需要被多个处理着按顺序处理时,

  • 状态模式:某个对象在不同状态会有不同行为,如电梯的运行状态,ATM机的各种状态、订单状态、角色的不同状态(如跑动,跳跃,攻击等)

  • 观察者模式:对象间存在一对多关系,一个对象的状态发生改变要通知其他对象

  • 中介者模式:多个对象存在一对多联系,加入中介对象来负责转发通信

  • 迭代器模式:为聚合对象实现多种遍历方式,并且只需要提供一个统一的接口(通过实现接口创建多种遍历方式)

  • 访问者模式:一个对象集合有多个元素,需要从多个不同且不相干角度挨个访问这些对象,如:人物对象集合[学生、老师]​​,家长角度访问学生的成绩​​和老师的能力​​,校长角度访问学生人数​​和老师任课科目​​

  • 备忘录模式:某个对象数据需要备份,在某些时候供恢复使用

  • 解释器模式:用一些符号表示一些执行过程,这些符号比较简单并且可以任意组合,不同组合会有不同执行结果,需要先定义这些符号的执行规则(即解释)

http://www.lryc.cn/news/271299.html

相关文章:

  • 详解Vue3中的事件监听方式
  • Unity关于easySave2 easySave3保存数据的操作;包含EasySave3运行报错的解决
  • 2022年全球软件质量效能大会(QECon上海站)-核心PPT资料下载
  • 【python报错】UserWarning: train_labels has been renamed targets
  • 算法专题四:前缀和
  • STM32学习笔记十五:WS2812制作像素游戏屏-飞行射击游戏(5)探索动画之帧动画
  • 期末复习(程序设计)
  • html-css-js移动端导航栏底部固定+i18n国际化全局
  • Ubuntu Linux 入门指南:面向初学者
  • 常见算法面试题目
  • PiflowX组件-JDBCWrite
  • 算法导论复习题目
  • HTTPS协议详解
  • 菜鸟学习vue3笔记-vue3 router回顾
  • Mybatis枚举类型处理和类型处理器
  • 2023 NCTF writeup
  • golang的大杀器协程goroutine
  • [Angular] 笔记 9:list/detail 页面以及@Output
  • Linux学习笔记(一)
  • Python 爬虫 教程
  • uniapp原生插件 - android原生插件打包流程 ( 避坑指南一)
  • 搭建maven私服
  • EST-100身份证社保卡签批屏按捺终端PC版web版本http协议接口文档,支持web网页开发对接使用
  • 基于SpringBoot的毕业论文管理系统
  • iToF人脸识别
  • Django开发3
  • MS2358:96KHz、24bit 音频 ADC
  • 【Android12】Android Framework系列---tombstone墓碑生成机制
  • 中间件系列 - Redis入门到实战(原理篇)
  • P2249 【深基13.例1】查找