news 2026/6/15 1:04:44

常见的设计模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
常见的设计模式

1. 事件发射器

是一种 发布-订阅 (publish,subcription) 模型的实现

事件中心、事件发射器

本质是Map存储 事件名→回调函数集合

这样彼此都不知道对方存在,都是被 事件中心 单向关联,实现解耦

{ "data": [fn1, fn2], "click": [fnA], "error": [fnX, fnY, fnZ] }

on 注册:将函数放入集合

emit 遍历集合,依次执行回调

emit(eventName, payload) { for (const fn of listeners[eventName]) { fn(payload); } }

截图工具多语言中的事件发射器

2. 观察者模式

被观察者状态变化时通知所有观察者,触发update

之间通过 subjects 通信,需要维护观察者列表并实现 广播,即调用观察者的 update 回调,所以解耦合得并不是很彻底

// 被观察者:维护状态 + 维护观察者 class Subject { constructor() { this.observers = []; this.state = null; } setState(value) { this.state = value; this.notify(value); } addObserver(observer) { this.observers.push(observer); } removeObserver(observer) { this.observers = this.observers.filter(o => o !== observer); } notify(value) { this.observers.forEach(observer => observer.update(value)); } } // 观察者:需要有 update 方法 class Observer { update(value) { console.log("收到更新:", value); } } // 使用 const subject = new Subject(); const obs1 = new Observer(); const obs2 = new Observer(); subject.addObserver(obs1); subject.addObserver(obs2); subject.setState(123); // 输出:两次 “收到更新:123”

还有例如 useForm 中对表单状态 _formState 更新后通知相关组件的实现就是内部维护了一个观察者subjects

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 12:38:53

8、Java 中的内部类、契约、命名约定与枚举详解

Java 中的内部类、契约、命名约定与枚举详解 1. 构造函数的关键规则 在 Java 中,构造函数的使用有一些重要规则。首先, this() 和 super() 在构造函数中都必须放在第一行,且二者不能同时出现在第一行。如果构造函数中没有显式调用 this() 或 super() ,编译器会自动…

作者头像 李华
网站建设 2026/6/14 18:15:34

17、Java 知识要点与常见问题解析

Java 知识要点与常见问题解析 1. 选择题答案解析 1.1 枚举相关 题目 1 :答案为 B、D、E。枚举不能被扩展或实例化,所以 A 和 C 不合法。B 是对枚举常量的合法使用,D 合法地将枚举传递给方法,E 合法地调用了所有枚举从 Object 类继承的方法。 题目 9 :答案为 A、B。sw…

作者头像 李华
网站建设 2026/6/15 12:56:19

基于SpringBoot东燕手袋厂货物管理系统-计算机毕业设计源码+LW文档分享

摘 要 随着社会的不断进步,系统管理的复杂性日益加剧。互联网已成为用户获取信息的主要途径,然而,信息繁杂且真伪难辨。为了确保用户能够便捷、准确地获取东燕手袋厂货物管理的相关信息,设计一款既安全又高效的东燕手袋厂货物管理…

作者头像 李华
网站建设 2026/6/15 13:03:57

【2025】网络安全各类WAF绕过技巧,收藏就够了

目录 一、WAFWAFWAF绕过 1、脏数据绕过 2、高并发绕过 3、http参数污染 4、数据格式混淆 5、编码绕过 6、利用http协议绕过waf 7、请求方式转换 二、文件上传绕过 1、等号绕过 2、换行绕过 3、填充垃圾字符 4、NTFS ADS特性绕过 5、利用WAF的缺陷 6、双文件上传…

作者头像 李华
网站建设 2026/6/12 4:24:07

出海安全为本!亚马逊云科技进一步扩展多因素验证,强化统一管理

亚马逊云科技从一开始就将安全为本的原则融入进其服务的构建中,包括为客户设置高标准的默认安全功能。在账户安全的众多要素中,强大的身份验证是账户安全的基础组成部分。多因素验证(MFA)是防止未经授权人员访问系统或数据的最简单…

作者头像 李华