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

两个简单的设计模式的例子

观察者模式

观察者模式:

  • 定义对象间的一对多依赖关系,当一个对象(被观察者/主题)的状态发生变化时,所有依赖于它的对象(观察者)都会自动收到通知并更新。
  • 特点:一个主题可以广播消息给多个监听者,适用于事件处理系统、消息订阅等场景。
  • 类似于订阅发布,

利用观察者模式实现整个页面始终只有一个视频正在播放。在不改动其他组件的时候,直接修改video组件。
在这里插入图片描述

observe:

 // 观察者
export const observe = {inPlay: null,playVideo(videoRef) {//暂停之前的videoif (this.inPlay) {this.inPlay.pause();}// 播放新的videovideoRef.value.play();this.inPlay = videoRef.value;},pauseVideo() {if (this.inPlay) {this.inPlay.pause();}this.inPlay = null;},
};

video:

<script setup>
import { ref } from "vue";
import { observe } from "./0bserver.js";
const videoRf = ref(null);
// 在管理者中使用,调用观察者进行播放和暂停
const play = () => {observe.playVideo(videoRf);
};const pause = () => {observe.pauseVideo();
};
</script><template><div><videosrc="./111773_web.mp4"style="width: 100px; height: 100px"ref="videoRf"></video><button @click="play">播放</button><button @click="pause">暂停</button></div>
</template>

在这里插入图片描述

单例模式例子

项目在浏览器端使用request,在app端使用requestApp,
要根据不同的场景使用不同的请求

使用单例模式处理单例模式:

//判断环境的方法
const isApp =()=>{return 'xxx'
}
---------------------
import requestH5 from ""
import requestApp from ""
// 暴露一个标记,通过标记来储存已经实例化的对象
//单例模式保证,某一类只被创建一次
let requestFn = null
export  const request =()=>{
if(!requestFn){// 第一次发请求,要判断登入的环境if(isApp){requestFn = requestApp}else{requestFn = requestHe}requestFn()
}
http://www.lryc.cn/news/623253.html

相关文章:

  • [Linux] Linux文件系统基本管理
  • 没学过音乐怎么写歌?豆包 + 蘑兔
  • Python Condition对象wait方法使用与修复
  • 《设计模式》装饰模式
  • Tello无人机与LLM模型控制 ROS
  • 二十六、Mybatis-XML映射文件
  • 行为型设计模式:对象协作的舞蹈家(中)
  • 从0到1掌握 Spring Security(第三篇):三种认证方式,按配置一键切换
  • RH134 访问网络附加存储知识点
  • 从舒适度提升到能耗降低再到安全保障,楼宇自控作用关键
  • 19.3 Transformers量化模型极速加载指南:4倍推理加速+75%显存节省实战
  • 立体匹配中的稠密匹配和稀疏匹配
  • RK3568 NPU RKNN(二):RKNN-ToolKit2环境搭建
  • 《MySQL 数据库备份与视图创建全流程:从数据迁移到高效查询实战》
  • MySQL的下载安装(MSI和ZIP版本都有)
  • 利用Qwen大模型进行c++11并发库的学习,与时俱进!!!!
  • 从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践01
  • 同创物流学习记录1
  • 发文暴论!线性注意力is all you need!
  • 【leetcode】12. 整数转罗马数字
  • 双椒派E2000D开发板LED驱动开发实战指南
  • 【手撕JAVA多线程】1.从设计初衷去看JAVA的线程操作
  • ESP32 C3 开发板使用教程 01-测试显示屏
  • 数据结构之heap算法
  • ollama 自定义模型
  • 黑板架构详解
  • jd-hotkey探测热点key
  • 深入理解 Linux 线程:从概念到虚拟地址空间的全面解析
  • 第5问 对于数据分析领域,统计学要学到什么程度?
  • 2025年睿抗国赛本科组题解