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

面试-设计模式

在这里插入图片描述

策略模式

定义了一组算法,分别封装起来,这些算法直接可以相互替换
在这里插入图片描述
在这里插入图片描述
设计模式的开闭原则:对修改关闭,对扩展开放

装饰模式

将某种算法作为一个装饰品添加到对象身上,同时可以自由穿戴更换装饰品
两个主要的角色:装饰器和被装饰的对象
装饰器和被装饰的对象要实现同一接口
(下面是装饰器的父类
在这里插入图片描述
在这里插入图片描述

观察者模式

对象的一对多关系,当一个对象的状态发生改变时,他所有的依赖者都会收到通知并自动更新,观察者模式也叫订阅发布模式
两种模式:观察者和被观察者(或者叫做订阅者和发布者)报社就是被观察者 订报纸的客户就是观察者
被观察者要保存所有观察者的列表,这样的话才能够通知观察者 遍历列表挨个调用方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

单例模式

确保一个类只有一个实例化对象,并且提供一个可以被全局访问的对象
(双重检测)
在这里插入图片描述

工厂模式

不需要开发者手动创建对象,而是提供一个容器,开发者需要对象的时候只需要从中去获取
在这里插入图片描述
在这里插入图片描述

适配器模式

将一个接口转换成用户期望的另一个接口
解决的是类之间接口不兼容的问题
在这里插入图片描述
在这里插入图片描述

代理模式

实现目标对象和业务方法的解耦合
业务代码和非业务代码分离
代理 委托 实现同一个接口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模板方法模式

提供了一个算法模板,将各个类中相同的代码统一提取出来,封装到父类中,形成一个模板,子类可以直接复用代码
(抽象方法+定义过程cook)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
servlet使用模板方法模式

责任链模式

链式调用的形式
责任指的是对请求的某些操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/320914.html

相关文章:

  • hive中map_concat函数介绍
  • C++创建型设计模式体现出的面向对象设计原则
  • GEE下载ERA5-Land气象数据(1950-至今,降水、温度)
  • Docker环境搭建Cloudreve网盘服务(附shell脚本一键搭建)
  • Spark RDD sortBy算子什么情况会触发shuffle
  • uniapp h5地址前端重定向跳转
  • 如何将我的手机模拟成为一个海外设备
  • python全栈学习项目案例(一)atm+购物车
  • 如何排查我的ip有没有被其他人使用
  • Linux文本内容管理命令_2
  • flink kafka sink (scala)
  • 大模型的实践应用30-大模型训练和推理中分布式核心技术的应用
  • layui upload.render 设置文件名
  • GB28181语音对讲协议详解
  • docker - 镜像操作(拉取、查看、删除)
  • Endnote激活码失效
  • Vue3使用hiprint——批次打印条码
  • js判断一个对象里有没有某个属性
  • 细说Flink状态管理
  • 深度学习激活函数
  • DC00015基于java web校园网上购物系统
  • Python图形用户界面设计的15个基础组件
  • SpringCloud Alibaba五大组件之——Sentinel
  • html实现黑白棋
  • 代码随想录算法训练营43期 | Day 21 —— 108.将有序数组转换为二叉搜索树、 538.把二叉搜索树转换为累加树
  • 【Linux】通过内核以太层可查看应用程序运行时访问外网情况